You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Web集成Google Pay与Stripe网关遇支付执行问题求助

解决Google Pay + Stripe支付最后一步:处理返回的令牌对象

核心流程:拿到Google Pay令牌后,传给Stripe完成支付

1. 提取Google Pay返回的支付令牌

从Google Pay API返回的JSON对象中,取出response.paymentMethodData.tokenizationData.token字段,这个就是需要传给Stripe的核心令牌数据。

2. 前端用Stripe SDK创建PaymentMethod

使用Stripe.js将Google Pay令牌转换为Stripe的支付方式对象,示例代码:

// 初始化Stripe实例(用你配置里的publishableKey)
const stripe = Stripe('YOUR_PUBLIC_STRIPE_KEY');

// 假设googlePayToken是你从Google Pay响应中提取的令牌
const { error, paymentMethod } = await stripe.createPaymentMethod({
  type: 'card',
  card: {
    token: googlePayToken,
  },
});

if (error) {
  // 处理创建失败的情况,比如提示用户
  console.error(error);
  return;
}

3. 将PaymentMethod ID传给后端

把paymentMethod.id通过API请求发送到你的后端服务,后端需要用这个ID来完成支付确认。

4. 后端完成支付确认

后端使用Stripe服务端SDK,将PaymentMethod关联到已创建的PaymentIntent(或创建新的PaymentIntent并确认),示例Node.js代码:

const stripe = require('stripe')('YOUR_STRIPE_SECRET_KEY');

// 假设前端传过来paymentMethodId和之前创建的paymentIntentId
const paymentIntent = await stripe.paymentIntents.confirm(
  'PAYMENT_INTENT_ID', // 提前在后端创建的支付意图ID
  { payment_method: paymentMethodId }
);

// 根据paymentIntent的status判断支付结果
if (paymentIntent.status === 'succeeded') {
  // 支付成功,处理后续逻辑(比如更新订单状态)
} else {
  // 支付失败,返回错误信息给前端
}

注意事项

  • 确保后端已提前创建PaymentIntent(包含支付金额、货币等关键信息),并将client_secret返回给前端(如果需要前端发起确认的话)。
  • 你使用的Stripe API版本2018-10-31较陈旧,建议升级到最新稳定版本,避免潜在的兼容性问题。
  • 检查Google Pay的tokenizationSpecification配置是否正确,你的当前配置是符合要求的:
    {
      "type": "PAYMENT_GATEWAY",
      "parameters": {
        "gateway": "stripe",
        "stripe:version": "2018-10-31",
        "stripe:publishableKey": "YOUR_PUBLIC_STRIPE_KEY"
      }
    }
    

内容的提问来源于stack exchange,提问作者iFURY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 04:57:20