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

如何配置Intent-Filter实现支付网关按钮点击跳转回安卓App并传递状态

Android支付网关回跳App实现方案

前置配置:AndroidManifest.xml注册Intent-Filter

首先需要在你要响应回跳的Activity节点下添加如下配置:

<activity
    android:name=".你要接收回跳的Activity类名"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <!-- 自定义Scheme和Host,建议使用唯一值避免和其他应用冲突 -->
        <data
            android:scheme="你的自定义scheme,例如myapppay"
            android:host="你的自定义host,例如pay.callback" />
    </intent-filter>
</activity>

支付网关页a标签跳转配置

直接使用Android官方的intent协议格式编写跳转链接,可以精准指定包名和目标Activity,不会唤起其他匹配同Scheme的应用:

  • 取消支付(携带message=FAILED)按钮的链接:
<a href="intent://pay.callback?message=FAILED#Intent;package=你的App包名;component=你的App包名/.你的接收回跳Activity类名;scheme=你的自定义scheme;end">CANCEL</a>
  • 完成支付(携带message=DONE)按钮的链接:
<a href="intent://pay.callback?message=DONE#Intent;package=你的App包名;component=你的App包名/.你的接收回跳Activity类名;scheme=你的自定义scheme;end">ACCEPT</a>

参数替换说明:

  • 你的App包名:对应App的applicationId,例如com.test.mall
  • 你的接收回跳Activity类名:对应Manifest里注册的Activity类名,例如PayResultActivity
  • 自定义scheme、host:要和Manifest里配置的完全一致

App端接收参数逻辑

在接收回跳的Activity的onCreate方法中添加如下代码获取参数:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // 省略布局初始化逻辑
    Intent intent = getIntent();
    if (Intent.ACTION_VIEW.equals(intent.getAction())) {
        Uri callbackData = intent.getData();
        if (callbackData != null) {
            // 获取支付结果参数
            String payResult = callbackData.getQueryParameter("message");
            // 根据结果处理后续逻辑
            if ("DONE".equals(payResult)) {
                // 展示支付成功页面
            } else if ("FAILED".equals(payResult)) {
                // 展示支付失败/取消页面
            }
        }
    }
}

额外注意事项

如果需要处理用户未安装App的场景,可以在intent链接中添加S.browser_fallback_url=你的备用跳转地址参数,未检测到对应App时会自动跳转到备用地址,示例:

<a href="intent://pay.callback?message=DONE#Intent;package=com.test.mall;component=com.test.mall/.PayResultActivity;scheme=myapppay;S.browser_fallback_url=https://你自己的备用页地址;end">ACCEPT</a>

内容的提问来源于stack exchange,提问作者David Black

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:54:08