免密支付

Android接口

1. 创建CMBApi对象

/*
    @param aContext  Android Context对象
    @param aAppId   AppId
*/
public static CMBApi createCMBApi(Context aContext, String aAppId)

2. 发送请求

/*
        发送请求,其中请求内容通过参数CMBRequest指定
        @param CMBRequest 请求对象参数
*/
public int sendReq(CMBRequest aReq);
CMBRequest定义
requestData支付、协议、领券等业务功能等请求参数,具体内容由业务功能给出具体内容,SDK透传,会将该字段信息Post给对应功能页面
CMBJumpAppUrlh5Url与CMBJumpUrl至少有一个赋值,app已经安装时要跳转到的招商银行APP具体功能的url
CMBH5Urlh5Url与CMBJumpUrl至少有一个赋值,app没有安装时在商户APP打开H5页面
method业务功能类型,SDK透传,默认上送pay
isShowNavigationBar

True:显示H5支付页面导航栏

False:不显示

默认显示导航栏

2.1 mH5Url与mCMBJumpUrl地址

/**测试环境与生产环境地址不同**/

测试环境: 
mH5Url: http://121.15.180.66:801/netpayment/BaseHttp.dll?H5NPSignJsonSDK
mCMBJumpUrl: cmbmobilebank://CMBLS/FunctionJump?action=gofuncid&funcid=0027016&requesttype=post&cmb_app_trans_parms_start=here
生产环境 
mH5Url: https://netpay.cmbchina.com/netpayment/BaseHttp.dll?H5NPSignJsonSDK 
mCMBJumpUrl: cmbmobilebank://CMBLS/FunctionJump?action=gofuncid&funcid=0027016&requesttype=post&cmb_app_trans_parms_start=here

3. Intent回调接口

@param aIntent onCreate(), onNewIntent()以及onActivityResult中的intent参数
@aEventHandler 最终处理业务处理结果的回调接口
@return 已处理Intent返回true, 未处理返回false
 
boolean handleIntent(Intent aIntent, CMBEventHandler aEventHandler);

要点:

需要在onCreate(), onNewIntent()以及onActivityResult方法里面显式调用该方法,否则将收不到最终的业务处理结果回调。

4. 业务响应回调接口CMBEventHandler

定义:

interface CMBEventHandler {
     void onResp(CMBResponse aResp);
}

CMBResponse定义
respCode返回码
resMsg返回的业务数据


respCode定义
返回值描述返回值描述返回值
描述
0
支付成功-1支付失败-3
支付状态未知
1签约成功2签约失败3签约状态未知
-2参数不正确8用户取消9网络异常


5. 检查用户是否安装招商银行APP

如果已安装招行APP,返回true,否则返回false
 
public boolean isCMBAPPInstalled();

6. 自定义webview-CMBWebview

6.1 集成方式

在布局文件中集成该控件,或者在代码中构造出此控件实例动态添加到布局中。详细请参考网络上自定义控件集成。

6.2 发送签约请求

商户自定义H5页面中作请求加载招商银行网页支付

@param cmbRequest   request参数
@param listener    
public void sendRequest(CMBRequest cmbRequest, CMBWebViewListener listener);

6.3 CMBWebViewListener参数说明

商户用来接收招行浏览器控件的业务回调及标题变更事件,商户APP实现以下接口:

@brief 收到页面关闭响应
 *
 * 用户主动关闭/取消页面请求、或收到业务响应结果
 * @param respCode 返回的支付结果码
@param respString 支付结果信息
 
void onClosed(int respCode, String respString);
 
@brief 收到页面标题变更通知
 *
 * H5页面设置的标题内容
@param title 变更后的标题
 
void onTitleChanged(String title);

6.4 获取当前签约结果

商户自定义H5支付页面时,主动触发此方法获取当前签约结果;由于响应数据会发生变更,非关闭场景请勿获取该信息,避免对业务处理产生干扰。

public CMBResponse getCMBResponse();