我正在尝试将Stripe Payment集成到我的Flutter网站中,我正在使用Stripe_Payment 0.1.0包(早期版本似乎支持Web(。我已经在initState:中配置了Stripe凭据
initState() {
super.initState();
StripePayment.setSettings(StripeSettings(
publishableKey: "pk_test_**REAL CREDENTIAL HERE**",
merchantIdentifier: "Test",
androidProductionEnvironment: false));
}
当用户单击"添加卡"时,我调用以下功能,并希望出现一个弹出窗口供用户出示凭据。不幸的是,什么都没有发生,也没有打印错误消息。
StripePayment.addSource().then((token) {
Firestore.instance.collection('cards').document(widget.userID).collection('tokens').add({'tokenID': token}).then((val) {
print('saved');
});
}).catchError((e) {
print(e);
});
知道为什么不起作用吗?我需要实现一个对话框吗?有没有更好的方法可以在网络上生成Stripe代币?
这里有一个在Flutter Web应用程序和移动应用程序上进行Stripe集成的好例子。
分步指南https://fidev.io/stripe-checkout-in-flutter-web/
源代码。(需要更改constant.dart文件上的apiKey、secretKey和price id(https://github.com/MarcinusX/flutter_stripe_demo
我为stripe_CHECKOUT_web.dart中的successUrl添加了{CHECKOUT_SESSION_ID},如下所示。
void redirectToCheckout(BuildContext _) async {
final stripe = Stripe(apiKey);
stripe.redirectToCheckout(CheckoutOptions(
lineItems: [
LineItem(price: nikesPriceId, quantity: 1),
],
mode: 'payment',
successUrl: 'http://localhost:8081/#/success/{CHECKOUT_SESSION_ID}',
cancelUrl: 'http://localhost:8081/#/cancel',
));
}