InvalidRequestException 无效的客户端密钥 - Stripe 支付 sdk

Ask*_*skQ 3 android stripe-payments

我正在尝试接受付款,但在 sdk 回调中收到此错误。

代码:

val params = cardInputWidget.paymentMethodCreateParams
        if (params != null) {
            val confirmParams =
                ConfirmPaymentIntentParams.createWithPaymentMethodCreateParams(params, clientSecret)
            stripe = Stripe(
                applicationContext,
                PaymentConfiguration.getInstance(applicationContext).publishableKey)

            stripe.confirmPayment(this, confirmParams)
        }


override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)

    stripe.onPaymentResult(requestCode, data, object : ApiResultCallback<PaymentIntentResult> {
        override fun onSuccess(result: PaymentIntentResult) {
            val paymentIntent = result.intent
            val status = paymentIntent.status
            if (status == StripeIntent.Status.Succeeded) {
                val gson = GsonBuilder().setPrettyPrinting().create()
                showToast("Payment succeeded " + gson.toJson(paymentIntent))
            } else {
                showToast("Payment Error: "+paymentIntent.lastPaymentError?.message ?: "")
            }
        }

        override fun onError(e: Exception) {
            showToast("Payment failed "+e.message)
        }
    })
}
Run Code Online (Sandbox Code Playgroud)

onError 总是被调用!

这是sdk的内部代码: 寻求

Jos*_*rić 5

你正在使用confirmPayment方法而不是confirmSetupIntent方法。一种用于使用客户端密钥确认支付意图,另一种用于使用客户端密钥确认设置意图。查看 Stripe 文档以保存和重用付款方式:https://stripe.com/docs/ payments/save-and-reuse