我正试图在我的flutter应用程序中使用Pay插件flutter_stripe库集成Google Pay。付款后,我从支付插件获得令牌,但当我尝试将其发送到Stripe时,我得到异常为"无效令牌ID: tok_xx"。
我遵循flutter_stripe库提供的示例,如下所示:
final token = paymentResult['paymentMethodData']['tokenizationData']['token'];
final tokenJson = Map.castFrom(json.decode(token));
final params = PaymentMethodParams.cardFromToken(
paymentMethodData: PaymentMethodDataCardFromToken(
token: tokenJson['id'],
),
);
await Stripe.instance.confirmPayment(
paymentIntentClientSecret: clientSecret,
data: params,
);
我在确认付款方法上得到这个错误。我需要对令牌做更多的操作吗?有其他方法可以验证令牌吗?
我试着在发布和测试模式下测试,结果相同。
您所指的屏幕未完成,有一个TODO[1]需要完成。您有两个选项:
-
继续使用付费插件,并检查该SDK的维护者关于该TODO的下一步。或者使用以下API[2]从令牌创建一个PaymentMethod,并在确认PaymentIntent时使用它,如下所示:
const paymentMethod = await stripe.paymentMethods.create({ type: 'card', card: { token: 'tok_xxxxx', }, });
-
或者,按照这个屏幕[3]和使用confirmPlatformPayPaymentIntent[4]方法来确认支付
[1] https://github.com/flutter-stripe/flutter_stripe/blob/db72f0ed6f5e47b932825e146f824608574ee75d/example/lib/screens/wallets/google_pay_screen.dart别
[2] https://stripe.com/docs/api/payment_methods/create?lang=node create_payment_method-card
[3] https://github.com/flutter-stripe/flutter_stripe/blob/main/example/lib/screens/wallets/google_pay_stripe_screen.dart[4] https://github.com/flutter-stripe/flutter_stripe/blob/main/example/lib/screens/wallets/google_pay_stripe_screen.dart气密性好