ReactNative 交易成功后获取条带交易详细信息

问题描述 投票:0回答:1

通过ReactNative实现以下代码,我可以成功完成Stripe支付。

const openPaymentSheet = async (paymentIntentClientSecret: string, ephemeralKey: string, stripeId: string) => {
            try {
                const { error } = await initPaymentSheet({
                    customerId: stripeId,
                    customerEphemeralKeySecret: ephemeralKey,
                    paymentIntentClientSecret: paymentIntentClientSecret,
                    merchantDisplayName: 'Workout Wallet'
                });
    
                if (error) {
                    captureLog('Error in init payment sheet: ', error)
                    Alert.alert('Error', error.message);
                    return;
                }
    
                const { error: paymentError } = await presentPaymentSheet();
                if (paymentError) {
                    captureLog('Error in payment: ', paymentError)
                    Alert.alert('Error', paymentError.message);
                } else {
                    Alert.alert('Success', 'Your payment was confirmed successfully!');
                }
            } catch (err) {
                console.log("Failed to open payment sheet: ", err);
                Alert.alert('Error', 'Failed to open payment sheet');
            }
        };

在服务器上,我能够从 Stripe 捕获成功和失败事件。
在客户端,成功付款后,我必须根据该交易将发票详细信息、订单摘要、折扣详细信息等保存在数据库中。但客户端应用程序无法获取交易 ID 或其他任何内容的详细信息。如何捕获交易 ID 以将自定义详细信息保存在我的数据库中?

react-native stripe-payments
1个回答
0
投票

保存发票详细信息、订单摘要、折扣详细信息等业务逻辑应始终在 webhook 处理程序中进行。您永远不应该通过客户端执行此操作,因为客户可以在保存数据之前关闭浏览器窗口,并且数据将会丢失。您可以在服务器上监听

payment_intent.succeeded
webhook 事件,并使用 PaymentIntent ID 通过 Stripe API 获取任何相关对象/信息,并将其保存到您的数据库中。

© www.soinside.com 2019 - 2024. All rights reserved.