曾清 发表于 2020-2-17 12:21:14

第三方 APP 调用农行掌银 APP 支付 使用说明-农行掌银APP支付

第三方 APP 调用农行掌银 APP 支付使用说明
文档信息:
最新版本:V0.4

修订记录:


日期
版本
修订描述
作者

2016-11-16
0.1
创建
范华、王杰、苏玉林、
骆雄武

2017-01-06
0.2
修订
骆雄武

2017-02-20
0.3
修订
苏玉林、骆雄武

2017-4-12
0.4
修订
范华、王杰、骆雄武







修订内容:


版本
修订内容

0.1
创建

0.2
增加基本说明、接口及参数说明

0.3
在接口及参数说明中增加具体的返回参数说明

0.4
对第三方 APP 如何提供白名单信息进行具体说明







一、基本说明
1、随本文档提供的掌银安装包和供第三方 APP 集成的SDK,均适用 于测试环境,而非生产环境,使用前请确保所访问环境是正确的。2、用于测试环境的测试数据,请联系各相关分行业务对口人员获 取。
3、掌银测试安装包及支付 SDK 分 iOS 和Android 两个版本,分别包 含的文件如下:(1)iOS 版 掌银测试安装包:支付测试 3.5.0.ipa
支付 SDK 文件:ABCAppCaller.h , libABCAppCaller.a
(2)Android 版 掌银测试安装包:BankABC_XXX_sign.apk 支付 SDK 文件:bankabccaller.jar
4、各 APP 在准备集成上述支付 SDK,并与农行掌银 APP 支付进行联调测试前,请务必确保自己已经是农行线上支付平台(商 e 付)的签约商 户,并确保自己应用的服务端配置对接的是农行商 e 付的测试环境。
5、整个支付流程与系统关系示意如下图 1。




二、iOS SDK 集成及使用指南
1、将静态库 libABCAppCaller.a 以及头文件ABCAppCaller.h 集成到 工程中2 、 工 程 Plist文 件 添 加 如 下 配 置 项 , 将 农 行 掌 银 url 添 加 至 canOpenURL 调用白名单<font style="font-size: 12.0pt"><key>LSApplicationQueriesSchemes</key></font>
<font style="font-size: 12.0pt"><array></font>
<font style="font-size: 12.0pt"><string>bankabc</string></font>
<font style="font-size: 12.0pt"></array></font>
3、ios 支付 SDK 调用示例代码:

   if ([ isABCePayAvailable:@"bankabc://"]) {
        [ callBankABC:@"bankabc" param:@“CallbackID=railwaypay&TokenID=14406457162720037182&Method=pay”];//如 果已安装掌银则调起掌银,两个参数分别为掌银的 URL 标示以及送的参数,参数格式 参考标准 url 传参格式
    }
    else{
   

4、将掌银测试安装包安装至测试手机中进行连调测试,可通过同步助 手等软件进行安装
5、支付完成后,掌银会反调起第三方 APP,并传入相应参数(该笔 支付的订单号),APP 需自行获取并处理相应参数,并根据订单号主动查询支付结果。
三、AndroidSDK 集成及使用指南
1.将 bankabccaller.jar 放入工程lib 目录下;2.示例代码:

/**
        * 判断手机上是否具备调起农行掌银的条件
*/
if (BankABCCaller.isBankABCAvaiable(MainActivity.this)) {

        /**
        * 调起农行掌银
        */
        BankABCCaller.startBankABC(MainActivity.this,        "com.example.caller", "com.example.caller.MainActivity", "pay",           "14821359507779891364");
        } else {//客户手机未安装农行掌银 APP 的处理逻辑,由第三方 APP 自行实 现
        Toast.makeText(MainActivity.this, "没安装农行掌银,或已安装农 行掌银版本不支持",Toast.LENGTH_LONG).show();
        }


3.获取掌银返回参数(在 onResume 方法里) 支付完成后,掌银会反调起第三方 APP,并传入相应参数,通知 APP
查询支付结果
String param = getIntent().getStringExtra("from_bankabc_param");

4、调用农行掌银之前,如果 APP 自身弹出了系统键盘,请先将键盘 隐去,再执行调起掌银 APP 的操作。

四、接口及参数说明

1、iOS SDK 接口说明:(1)isABCePayAvailable //农行掌银支付是否可用 参数:农行掌银 url,例如 bankabc
(2)callBankABC: //调用农行掌银APP 支付
参数 1:农行掌银 url,例如bankabc
参数 2:参数列表param,具体包含三个字段 CallbackID,TokenID,Method,以&符号连接,拼成一串,例如: CallbackID=railwaypay&TokenID=14406457162720037182&Method=pay

2、Android SDK 接口说明:
(1)BankABCCaller.isBankABCAvaiable(Activity activity) //农行掌 银支付是否可用
(2)BankABCCaller.startBankABC(Activityactivity,String appID,
StringCallbackID,String Method, String TokenID) //调用农行掌银APP 支付
例如:BankABCCaller.startBankABC(MainActivity.this, "com.example.caller","com.example.caller.MainActivity","pay", "14821359507779891364")

3、参数含义说明:
(1)appID:第三方 APP 的应用标识。iOS 无此项内容,值为空; Android 为第三方 apk 的包名。
(2)CallbackID:支付完成后回调用的 id。iOS 为第三方 app 的 schema,Android 为第三方 APP 目标页面的 activity。
(3)Method:业务类型。目前支持的取值仅为 pay,表示是支付交易。
(4)TokenID:支付订单号。

4、支付完成后,掌银调起第三方 APP 的过程及参数
(1)支付完成后,掌银支付页面若判断出是从第三方 APP 过来的支付订 单,当用户点击“完成”按钮,则会反调起第三方 APP(需用到前面的 CallbackID 值),并传入参数 CallbackParam。

目前约定的 CallbackParam 为:“STT=XX & Msg=XXX &



TokenID=XXXX”,分别指: STT:支付状态码。 Msg:支付状态说明。
注意:STT 和Msg 由于是从掌银 APP 端传递给第三方的,可靠性无法保 证,其值仅供参考。目前所有的可能取值为:
STT
Msg
备注

0000
支付成功


9999
支付未完成


PA500401
已存在成功支付的订单


[支付出错情况下,后
台返回的错误码]
[后台返回的错误信息]



非法调用(未知的调起
APP)!!
无 appID


非法调用(错误的参
数)!!
无 param


非法调用(无法解析参
数)!
解密 param失败


非法调用(关键参数 1
未获取)!
未取到 TokenID


非法调用(关键参数 2
未获取)!
未取到 TimeStamp


非法调用(关键参数 3
未获取)!
未取到 CallbackID

AP0000
调起请求异常,请重
试!
时间戳验证失败或
android 签名验证失败

AP0001
调用程序不在白名单


其中,需要第三方 APP 程序对返回结果进行业务处理的是标黄的四类情 况。其余的均为程序或配置错误,需要进行相应的程序或配置修正,无需 业务逻辑处理。

TokenID:该笔支付对应的订单号。当支付状态为成功时,第三方 APP 需 根据该参数,主动去后台查询订单支付状态,确保支付状态的可靠性。

五、第三方 APP 提供白名单信息说明

第三方 APP 若需调用农行掌银 APP 进行支付,需提供自身 APP 相关信



息给总行业务部门添加至掌银白名单。具体需提供的信息包括: ios 版:APP 的 bundle id。
Android 版:APP 的包名(package name)和 APK 签名的 SHA-1 值。 查看方法如下:ios:



Android:








页: [1]
查看完整版本: 第三方 APP 调用农行掌银 APP 支付 使用说明-农行掌银APP支付