将 Stripe.js 作为 ES 模块导入到 Vue 中

2024-05-24

我正在尝试按照 stripe elements 文档中的说明并将 ES 模块安装到我的 Vue 支付组件中。 https://stripe.com/docs/stripe-js#html-js

请注意,目前 Stripe 网站 ES 模块安装选项卡已关闭。这是一个替代品。 https://dev.to/stripe/importing-stripe-js-as-an-es-module-1ni

I ran:

npm install @stripe/stripe-js

Usage

import {loadStripe} from '@stripe/stripe-js';

const stripe = await loadStripe('pk_test_TYooMQauvdEDq54NiTphI7jx');

当我更改代码以反映模块的安装时,我收到此错误:

30:17 错误解析错误:无法在异步函数外部使用关键字“await”

import {loadStripe} from '@stripe/stripe-js';
let stripe = await loadStripe(`pk_test_mypin`)
elements = stripe.elements()
card = undefined;

export default {
    mounted: function () {
        card = elements.create('card', {

        });
        card.mount(this.$refs.card);
    },
    data () {
        return {
            cardHolderName: '',
            stripeErrorMessage: null,
            serverErrorMessage: null,
        }
    },
    computed: {

    },
    methods: {
        processPayment(){

            let self = this;

            stripe.createPaymentMethod(
                'card', card, {
                    billing_details: { name: this.cardHolderName }
            }).then(function(result) {

                if(self.subscribitionCheckout){
                    self.submitPaymentForm(result.paymentMethod);
                } else if (self.changePaymentMethod){
                    self.changePaymentMethod(result.paymentMethod)
                }

                if (result.error) {
                    self.stripeErrorMessage = result.error.message;
                    self.hasCardErrors = true;
                    self.$forceUpdate(); // Forcing the DOM to update so the Stripe Element can update.
                return; 
                }
            });

        },
    },
}

在我拥有这个之前

let stripe = Stripe(`pk_test_mypin`),
elements = stripe.elements(),
card = undefined;

另外,我的代码基于本教程 https://www.digitalocean.com/community/tutorials/vuejs-stripe-elements-vue-integration


首先,把预期的顶层vars在数据中:

stripe: {}, // or whatever data type
elements: {}, // or whatever data type
card: {}, // or whatever data type

其次,制作一个created生命周期挂钩并加载内容:

created()
{
  loadStripe(`pk_test_TYooMQauvdEDq54NiTphI7jx`).
  then ( (result) =>
  {
    this.elements = result.elements
    // do stuff with card if you have too...

  },
},
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Stripe.js 作为 ES 模块导入到 Vue 中 的相关文章

随机推荐

  • RingtoneManager.setActualDefaultRingtoneUri() 在 API 23 中工作吗?

    这是一个简单的问题 也可能是一个简单的答案 但有大量的上下文 问题 does setActualDefaultRingtoneUri 仍然可以在 API 23 中使用吗 因为我无法让它发挥作用 上下文 我已经设置了AndroidManife
  • 通过热图绘制横截面

    我有一个形状数组 201 201 我想通过数据绘制一些横截面 但我在访问相关点时遇到问题 例如 假设我想绘制由生成的图中的线给出的横截面 from pylab import Z randn 201 201 x linspace 1 1 20
  • 对 HList 进行协变过滤

    我打算以协变方式过滤 HList 我也想包含子类 所以协变滤波器Foo应捕获以下元素Foo也Bar 我已经构建了这个例子来尝试 lt lt 看看它是否做了我想做的事情 http scastie org 6465 http scastie o
  • Java lambda 表达式 - 如何省略接口名称?

    我正在阅读有关 lambda 表达式的 Oracle 教程 https docs oracle com javase tutorial java javaOO lambdaexpressions html https docs oracle
  • Android 有没有办法获取当前进程名称

    我为我的特定活动设置了 Android process XX 使其在单独的进程中运行 然而 当新的活动 进程初始化时 它将调用我的 Application onCreate 其中包含一些应用程序级别的初始化 我正在考虑通过检查当前进程名称来
  • 如何对使用 router.paramMap 的 Angular 4 组件进行单元测试

    我是 Angular 4 的新手 并尝试从单元测试中测试 Angular 4 功能 router paramMap 之一 以以下方式读取路由参数并在我的应用程序中按预期工作 constructor private router Router
  • Mac OS High Sierra 下无法打开 pty

    我的问题的本质是 用户程序如何在 Mac OS High Sierra 上打开 pty 例如 dev ptyp0 设备名称的标准 open 似乎不起作用 尽管它的保护是 crw rw rw 上下文是在 Mac OS 下运行 Emacs 在
  • mobx 未观察到数组拼接

    我定义了一个从数组中删除项目的操作 export default class myStore observable items action deleteItem async target gt try await backendServi
  • 将 NodaTime DateTimeZone 转换为 TimeZoneInfo

    我使用 NodaTime 是因为它对 zoneinfo 数据有很好的支持 但是我有一个情况需要将DateTimeZone into TimeZoneInfo用于 Quartz NET 这里推荐的方法是什么 IANA 拥有 Windows 时
  • 如何使用tablegateway连接表

    使用tableadapter时如何连接zend3中的表 问题不在于一般如何连接表 而在于如何在 zend 中执行此操作以及在何处放置代码 假设我有一个 table 类 namespace Import Model use RuntimeEx
  • 如何使用 Spring Boot 注册自定义休眠类型?

    冬眠时文档 https docs jboss org hibernate orm 5 0 manual en US html single types registry自定义类型是使用配置 http docs jboss org hiber
  • Yii:使用多重上传文件扩展时如何管理视频

    我是yiibie 正在努力上传视频 我已经用过uploadmultifile扩展并根据此链接进行了更改http www yiiframework com extension uploadmultifiles in my video view
  • 使用 google.script.run 从 html 调用库函数

    我使用 Google App Script 实现库 并且使用 google script run 从库中调用函数时遇到一些困难 这是我的图书馆的代码 Code gs function ShowSideBar var html HtmlSer
  • 无法在需要整数返回类型的函数中返回 NULL

    警告 返回从指针生成整数而不进行强制转换 默认启用 返回空值 我试图在我的函数中返回 NULL 但它不起作用 我不明白为什么会这样 下面是我的代码 但我不会发布整个代码 因为我只遇到 return 语句的问题 我希望你能够明白 includ
  • 如何编写强制执行复杂模式的 F# 类型提供程序?

    就在最近 我处理了一些交通和旅行信息的数据 即数据Datex2 http www datex2 eu content datex ii xml schema 21格式 该项目时间不长 现在已经结束 我像往常一样继续生成了一堆强类型 C 类x
  • 使用邮箱认证注册,只有30%激活?

    我正在使用 php 和 mysql 我的网站是 Flash 的 完整的 Flash 网站 我有一个允许用户注册的网站 注册过程包括发送 激活电子邮件 点击链接激活帐户 前两周还好 在大约 2000 个用户中 有 1800 个用户被激活 此后
  • 如何制作带边框的半圆角(顶角圆角)文本视图?

    How to make a half rounded Top corner rounded textview or tableview with the borderwidth and borderColor 这并不完美 但你可以这样做 i
  • 创建 Visual Studio 风格的选项/设置对话框

    我目前正在改进 winforms 应用程序的选项对话框 目前我正在使用选项卡控件 我想为类似于 Visual Studio 的设置创建一个表单 对话框 这是怎么做到的 我可以在左侧看到类似树视图的控件 但是他们使用什么控件来显示每个选项页面
  • 将非活动 UIView 捕获为 UIImage

    下面的代码运行良好 但只抓取屏幕上可见的 UIView 如何获取当前未显示的 UIView Thanks Take a screenshot of the view UIGraphicsBeginImageContext View 1 fr
  • 将 Stripe.js 作为 ES 模块导入到 Vue 中

    我正在尝试按照 stripe elements 文档中的说明并将 ES 模块安装到我的 Vue 支付组件中 https stripe com docs stripe js html js 请注意 目前 Stripe 网站 ES 模块安装选项