You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

商户应用UPI集成Intent功能失效,选择器无法识别任何支付应用

UPI Intent唤起失败解决方案

1. 优先适配Android 11+包可见性规则

Android 11(API Level 30)及以上版本对应用可见性做了限制,未在清单文件声明查询规则的情况下,你无法检测到设备上安装的其他UPI支付应用,这是90%以上同类问题的根因。
你需要在AndroidManifest.xml中添加如下查询配置:

<queries>
    <intent>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="upi" />
    </intent>
    <!-- 可按需添加主流支付应用包名提升查询效率 -->
    <package android:name="com.google.android.apps.nbu.paisa.user" />
    <package android:name="net.one97.paytm" />
    <package android:name="com.phonepe.app" />
    <package android:name="com.razorpay" />
</queries>

2. 修正UPI Intent调用逻辑

你的现有代码硬编码了Google Pay的包名,会导致其他支付应用无法被识别,建议先使用通用选择器验证唤起逻辑,确认正常后再按需指定包名:

int UPI_REQUEST_CODE = 123;
Uri uri = new Uri.Builder()
        .scheme("upi")
        .authority("pay")
        .appendQueryParameter("pa", "替换为你的有效VPA")
        .appendQueryParameter("pn", "商户名称")
        .appendQueryParameter("tr", "唯一交易流水号")
        .appendQueryParameter("tn", "交易备注")
        .appendQueryParameter("am", "10.00") // 金额必须保留两位小数,不得有其他字符
        .appendQueryParameter("cu", "INR")
        .build();

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(uri);
// 不要直接指定包名,先使用选择器测试
Intent chooser = Intent.createChooser(intent, "选择支付应用");
if (chooser.resolveActivity(getPackageManager()) != null) {
    startActivityForResult(chooser, UPI_REQUEST_CODE);
} else {
    Toast.makeText(this, "未检测到可用的支付应用", Toast.LENGTH_SHORT).show();
}

3. 参数合法性校验

  • 金额am参数必须为数字格式,且保留两位小数,例如1.00合法,1、¥1.00均不合法
  • 货币单位cu固定为INR,不得修改
  • 商户VPApa必须符合UPI规范,不得包含特殊字符,测试阶段可先用个人VPA验证唤起逻辑,排除商户资质问题
  • 商户代码mc若使用测试值,需确认是NPCI官方发布的有效测试商户码,随意填写的无效值会被支付应用直接拦截请求

4. EasyUpiPayment库适配问题

  • 确认使用的是库的最新稳定版本,旧版本未适配Android 12+的 intent 规则
  • 若开启了R8/ProGuard混淆,需添加库对应的混淆规则,避免核心类被裁剪导致回调异常
  • 库的商户ID校验逻辑较严格,若测试阶段始终报错,可先使用原生Intent逻辑验证,排除库本身的兼容问题

5. 支付应用状态适配

你遇到的未登录时可唤起、登录后无法唤起的问题,属于支付应用的风控拦截逻辑:

  • 个人账号登录状态下,支付应用会拦截无有效资质的测试商户请求,避免欺诈交易
  • 测试阶段可申请支付平台的官方测试商户资质,或使用支付平台提供的沙箱环境账号登录测试
  • 正式环境下使用已通过NPCI认证的企业商户ID即可正常唤起

内容的提问来源于stack exchange,提问作者Jamid Deka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:54:07