React Native中使用stripe-react-native库调用confirmPayment(已保存卡片)失败
React Native Stripe confirmPayment 调用失败(使用已保存卡片)
问题出在你调用confirmPayment的参数上——你只传了paymentMethodType: 'Card',但这个参数是给新卡片支付用的。当使用已保存的卡片时,必须传入已保存的支付方式ID,而不是仅指定支付类型。
修正后的代码示例:
假设你已经通过Stripe接口获取到用户保存的支付方式ID,存在savedPaymentMethodId变量中:
const { paymentIntent, error } = await confirmPayment( this.state.clientSecret, { paymentMethodId: savedPaymentMethodId, // 替换为实际的已保存支付方式ID }, );
关键说明:
- 当使用已保存卡片时,Stripe需要明确知道使用哪一个已保存的支付方式,因此必须传入
paymentMethodId,而非paymentMethodType。 - 你可以通过Stripe的
listPaymentMethods接口获取当前用户的已保存支付方式列表,从中拿到有效的paymentMethodId。 - 后端生成
clientSecret时,要确保对应的PaymentIntent关联了当前用户,并且允许使用已保存的支付方式。
另外,错误信息里的"You must provide paymentMethodType"是误导性提示,实际根源是缺少已保存支付方式的ID,按上述方式修改即可解决问题。
内容的提问来源于stack exchange,提问作者Muhammad Saqib Noor
相关产品推荐
相关产品推荐

