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

Posted

技术标签:

【中文标题】从我的 Android 应用调用 Google Pay 意图时出现错误“您已超过银行设置的最大交易金额”【英文标题】:Getting error "You have exceeded the maximum transaction amount set by your bank" when calling Google Pay intent from my android app 【发布时间】:2020-11-07 05:29:58 【问题描述】:

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

这里是代码 iiiiii

  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)

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

【问题讨论】:

您是否达到了本文档中提及的任何交易限制? upipayments.co.in/exceeded-maximum-transaction-limit 没有。即使这是我当天的第一笔交易,我也面临这个问题。 你找到解决办法了吗? 我输入的任何金额都面临这个问题,如果我在没有我的应用作为中介的情况下直接使用 Google Pay 付款,它可以工作。 您的银行对单笔交易的金额有限制吗?您说它适用于较小的金额,也许 Google Pay 的应用程序是“受信任的”,因此它们允许较大的付款。我在英国,我们对使用卡进行非接触式付款有 30 英镑的限制,但如果您使用 Google Pay 进行非接触式付款(使用同一张卡!)则没有限制,所以可能是这样吗?您可能应该与您的银行谈谈并询问 【参考方案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();

你需要做两处修改。

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

"mc" - 商户代码(可以为空)。 “tr” - 交易参考 id(可以是任何随机数)。 工作Reference Post here

【讨论】:

"mc" 可以为空 "tr" 强制可以解决问题,谢谢@Kamal。 你好@MohdQasim,你使用了商业应用ID吗? @JashanPJ 是的,我使用了企业 upi id,“mc”空白对我有用 如果是phonepe,收款人也需要一个企业帐户吗? @MohdQasim【参考方案2】:

我已经解决了问题,请下载并安装 google pay for business,更改 MY_UPI_ID(pa) 并尝试我会工作

【讨论】:

以上是关于从我的 Android 应用调用 Google Pay 意图时出现错误“您已超过银行设置的最大交易金额”的主要内容,如果未能解决你的问题,请参考以下文章

如何直接从我的应用程序使用 Google 地图导航

如何从我的应用程序中打开标准的 Google Map 应用程序?

从 Android 以编程方式更改 Google Talk 在线状态

从我的 react-native 应用程序调用 UPI 应用程序在 iOS 中有效,但在 Android 中无效

Cloud Functions - 调用 getHttpsCallable() 时 Android 应用程序崩溃

Android:从我的网站的收据页面检索付款信息