我们在flutter中实现了条纹支付,一切都很完美。我们现在有兴趣获得成功付款后生成的交易ID。
我们已经尝试过查看文件,但无法获得支付交易ID的方法。
有人能帮我们做这个方法吗?
-
大家好,
您可以从API由条纹、提供
- 首先创建您的createPaymentIntent
paymentIntent = await createPaymentIntent(context: context);
- 从paymentIntent获得paymentIntentId
var paymentIntentId = paymentIntent!['id'];
创建另一个函数来检索需要在标头上传递secretKey的支付细节,并将支付意图作为参数
retrieveTxnId( {required BuildContext context, required String paymentIntent}) async { try { http.Response response = await http.get( Uri.parse( 'https://api.stripe.com/v1/charges?payment_intent=$paymentIntent'), headers: { "Authorization": "Bearer $secretKey", "Content-Type": "application/x-www-form-urlencoded" }); if (response.statusCode == 200) { var data =json.decode(response.body); log("Transaction Id ${data['data'][0]['balanceTransaction']}"); } } catch (e) { throw Exception(e.toString()); }
}
您可以使用此方法获取事务id,我希望这能有所帮助您:Ameen:(
transactionId是PaymentIntent[1]或SetupIntent[2]ID,具体取决于您的集成。
使用Stripe接受付款时,您可能正在流中创建PaymentIntent。
例如,根据Flutter示例[3],以下是如何在您的支付流程中跟踪PaymentIntent:
- 在后台创建付款意向[4]
- 将paymentIntent ID传递给你的flutter应用程序,就像在这里传递client_secret[5]一样
您应该在所有支付流集成中使用此ID来跟踪它。
[1]https://stripe.com/docs/api/payment_intents/object#payment_intent_object-id
[2]https://stripe.com/docs/api/setup_intents/object#setup_intent_object-id
[3]https://github.com/flutter-stripe/flutter_stripe/blob/main/example
[4]https://github.com/flutter-stripe/flutter_stripe/blob/main/example/server/src/index.ts#L544
[5]https://github.com/flutter-stripe/flutter_stripe/blob/main/example/lib/screens/payment_sheet/payment_sheet_screen.dart#L91