从我的 Android 应用调用 Google Pay Intent 时出现错误“您已超出银行设置的最大交易金额”

Aka*_*shK 11 android kotlin android-studio google-pay

我在 android 应用程序中的谷歌支付集成面临这个奇怪的问题。当我发送的金额超过 2000(INR) 时,即使我没有进行任何交易,我也会收到错误消息“您已超出银行设置的最大交易金额”。当我尝试直接从 Google pay 发送金额时,它可以工作。它也适用于低于 2000(INR) 的金额,但不能超过此金额。

这是代码

  val uri: Uri = Uri.Builder()
        .scheme("upi")
        .authority("pay")
        .appendQueryParameter("pa", MY_UPI_ID)
        .appendQueryParameter("pn", MY_USER_NAME)
        //.appendQueryParameter("mc", "1234")
        //.appendQueryParameter("tr", "123456789")
        .appendQueryParameter("tn", "test transaction note")
        .appendQueryParameter("am", "2500.00")
        .appendQueryParameter("cu", "INR")
        //.appendQueryParameter("url", "https://test.merchant.website")
        .build()
    
    
    val intent = Intent(Intent.ACTION_VIEW)
    intent.data = uri
    intent.setPackage(GOOGLE_PAY_PACKAGE_NAME)
    startActivityForResult(intent, PAY_REQUEST_CODE)
Run Code Online (Sandbox Code Playgroud)

我已经阅读了很多博客、文档,但没有找到任何解决方案。任何帮助或建议?

Kam*_*kar 1

Uri uri = Uri.parse("upi://pay").buildUpon()
     .appendQueryParameter("pa", upiId)  // google pay business id
     .appendQueryParameter("pn", name)
     .appendQueryParameter("mc", "")            /// 1st param - use it (it was commented on my earlier tutorial)
     //.appendQueryParameter("tid", "02125412")
     .appendQueryParameter("tr", "25584584")   /// 2nd param - use it (it was commented on my earlier tutorial)
     .appendQueryParameter("tn", note)
     .appendQueryParameter("am", amount)
     .appendQueryParameter("cu", "INR")
     //.appendQueryParameter("refUrl", "blueapp")
     .build();
Run Code Online (Sandbox Code Playgroud)

您需要做两项修改。

  1. 仅使用 Google Pay 企业应用 ID
  2. 在意图调用中使用“mc”和“tr”参数。

"mc" - 商户代码(可以为空)。“tr” - 交易参考 ID(可以是任何随机数)。工作参考帖子在这里