iOS接入要点说明

以下项目开发环境以Xcode9.2,运行环境为IOS8.0为例,说明其开发中需要的操作。

项目设置Scheme

在Xcode中打开项目,设置项目属性中的URL Schemes为商户的scheme(需与安卓设置的scheme保持一致),如下图标红位置所示。

在info.plist中增加LSApplicationQueriesSchemes白名单配置,值为cmbmobilebank,如下图标红位置所示。

调起请求

根据业务功能接口生成请求数据(如根据一网通支付的订单接口生成订单数据),以下是发起请求的关键代码:

    CMBRequest *reqObj = [[CMBRequest alloc] init];
    reqObj.requestData= requestData;//业务功能请求数据,格式由业务功能定义,必填
    reqObj.method = method;//由业务功能自己定义,必填
    reqObj.h5Url = h5Url;//业务功能相应的weburl, h5Url与CMBJumpUrl均需要赋值
    reqObj.CMBJumpUrl = CMBJumpUrl;//业务功能在招行内部对应的JumpUrl,h5Url与CMBJumpUrl均需要赋值
    [CMBApi sendRequest:reqObj appid:appid viewController:self delegate:[CMBApiManager sharedManager]];
                        

请求结果URL传递

当这笔请求(如支付)完成后招商银行APP会提示用户“返回”。此时需要在商户的APAppDelegate.m的中拦截返回结果的url

//ios9之前使用如下两个接口拦截,并传递给招商银行SDK

    - (BOOL)application:(UIApplication *)application
        handleOpenURL:(NSURL *)url {

        return  [CMBApi handleOpenURL:url delegate:[ CMBApiManager sharedManager]];
    }

    - (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
        sourceApplication:(NSString *)sourceApplication
            annotation:(id)annotation {
    
        return [CMBApi handleOpenURL:url delegate:[ CMBApiManager sharedManager]];
    }

                        

//ios9之后使用此接口,并传递给招商银行SDK

    - (BOOL)application:(UIApplication *)app
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {

            return [CMBApi handleOpenURL:url delegate:[ CMBApiManager sharedManager]];
    }
                         

请求结果回调

参照招商银行SDK Sample,在类实现onResp函数,请求完成(如支付)后,招商银行APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,如果请求(如支付)处理成功则去后台查询请求结果再展示用户实际结果。注意:一定不能以客户端的回调结果作为展示给用户的结果,应以服务器端的接收的请求(如支付)处理通知或查询API返回的结果为准。代码示例如下:

   - (void)onResp:(CMBResponse *)resp {
        if (resp.errCode == CMBSuccess) {
            NSLog(@"Success!");//以后台结果为准
        } else if (resp.errCode == CMBRespUnknown) {
            NSLog(@"Unknow!");//以后台结果为准
        }  else {
            NSLog(@"Fail!");//以后台结果为准
        } 
    }
                        

关于网站迁移公告


为提供更优质的开发技术支持,本网站已于2019年8月12日正式迁移至新域名http://openhome.cmbchina.com/paynew/pay/Home,敬请访问并收藏。原网站域名已停止更新维护,请以新网站提供的文档信息为准。

由此给您带来的不便,敬请谅解。


招商银行一网通支付技术支持小组

2019年8月12日