交易 id

时间:2021-04-08 16:02:16

标签: android react-native stripe-payments 3d-secure

当一些用户尝试在生产中添加付款方式时,我的 React Native 应用程序崩溃。这仅在 Android 上发生。我无法在调试中重现它。我在 Sentry 中收到了这个神秘的错误报告,经过一些谷歌搜索后,我不知道这个错误意味着什么:

No ChallengeStatusReceiver for transaction id

d.q.a.g1.i.d: No ChallengeStatusReceiver for transaction id 
    at d.q.a.g1.l.s.a
    at d.q.a.g1.l.q.c
    at d.q.a.g1.l.q.b
    at d.q.a.g1.l.y$a.onPostExecute
    at android.os.AsyncTask.finish(AsyncTask.java:755)
    at android.os.AsyncTask.access$900(AsyncTask.java:192)
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:772)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:237)
    at android.app.ActivityThread.main(ActivityThread.java:8167)
    at java.lang.reflect.Method.invoke(Method.java)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)

我正在使用 tipsi-stripe,我很确定在调用 stripe.confirmSetupIntent() 时会发生此错误。如果用户的银行需要,此方法会提出身份验证“挑战”。

我现在使用的流程是:

  1. 用户输入付款详情:
const createPaymentMethodParams = {
  "billingDetails":{
    "name":"First Last"
  },
  "card":{
    "cvc":"333",
    "expMonth":12,
    "expYear":23,
    "number":"4111111111111111"
  }
}
  1. 调用后端,使用 confirmation_method=manual 创建设置意图。这将返回一个 client_secret

  2. 使用 createPaymentMethod“创建”付款方式,返回付款方式 ID。

const paymentMethodData = await
    stripe.createPaymentMethod(createPaymentMethodParams)
  1. 最后,确认设置意图(这是有时会崩溃的步骤):
// confirm the setup intent:
// - if authentication is required user will be redirected to auth flow
// - if no authentication is required this directly returns paymentMethodId
const { status, paymentMethodId } = await stripe.confirmSetupIntent({
  clientSecret: intent.client_secret, // previously obtained from backend
  paymentMethodId: paymentMethodData.id,
})

我在 Google 上找到的最相关的结果是这个 https://adyen.github.io/adyen-3ds2-android/com/adyen/threeds2/ChallengeStatusReceiver.html 它指的是 3DS sdk(如“3-D Secure”),当用户需要进行身份验证时,在此阶段查看它是有意义的。但是我真的不确定我是否走在正确的轨道上......

有没有人遇到过这个问题并且可以帮助我理解它,或者给我指明一个方向?非常感谢任何帮助!

0 个答案:

没有答案
相关问题