【问题标题】:how to return Stripe's createToken tokenId and use it in another function in vuex如何返回 Stripe 的 createToken tokenId 并在 vuex 的另一个函数中使用它
【发布时间】:2022-01-07 16:43:45
【问题描述】:

所以我在我的api.js 文件中调用Stripe.card.createToken 并想返回此函数生成的令牌以便我可以在我的vuex 中使用它,我该怎么做?

// api.js

export const stripeToken = async ({ cardInfo }) => {
  const { data } = await Stripe.card.createToken({
    cardInfo,
  });
  return data;
};

所以我想像这样在 vuex 中的操作中使用它。我这样做了,但它不起作用,它返回未定义:

//vuex

import { stripeToken } from '@src/store/api';
async stripeToken({ dispatch }, { cardInfo }) {
  const { data } = await stripeToken({ cardInfo });
  console.log('tokenId: ', data.tokenId);
},

【问题讨论】:

  • 你的 import 语句在 vuex 文件中是什么样子的?
  • @AbdulNiyasPM 用我的导入更新了帖子
  • 该问题缺乏明确的问题陈述和stackoverflow.com/help/mcve 。究竟什么是未定义的?代码是如何使用的?

标签: javascript vue.js async-await stripe-payments vuex


【解决方案1】:

我不熟悉 vuex,但是 Stripe.card.createToken 方法有两个参数:一个包含用户输入的信用卡数据的 JavaScript 对象,以及一个处理响应的回调函数。你可以在Stripe documentation here了解更多。

以下是使用Stripe.card.createToken 显示令牌 ID 的方法:

Stripe.card.createToken(cardInfo, (status, response) => {
  if (response.error) {
    console.log(response.error);
  } else {
    console.log(response.id);
  }
});

请注意,Stripe.card.createToken 是 Stripe.js v2 中的旧方法,现已弃用,因此如果可能,我会推荐 upgrading to Stripe.js v3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-14
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多