iOS接入要点说明
以下项目开发环境以Xcode9.2,运行环境为IOS8.0为例,说明其开发中需要的操作。
1. 项目设置
在Xcode中打开项目:
在info.plist中增加LSApplicationQueriesSchemes白名单配置,值为cmbmobilebank。
在URL Types中新增URL Schemes,值设置为招行分配给商户的scheme(需与安卓设置的scheme保持一致),如分配到的scheme为abcdefg则配置如下图所示。
2. 调起请求
根据业务功能接口生成请求数据(如根据一网通支付的订单接口生成订单数据),以下是发起请求的关键代码:
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]];
3. 请求结果URL传递
当这笔请求(如支付)完成后招商银行APP会提示用户“返回”。此时需要在商户的APAppDelegate.m的中拦截返回结果的url
//ios9之前使用如下两个接口拦截,并传递给招商银行SDK
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
return [CMBApi handleOpenURL:url delegate:xxx];
}
//ios9之后使用此接口,并传递给招商银行SDK
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
return [CMBApi handleOpenURL:url delegate:xxx];
}
4. 请求结果回调
参照招商银行SDK Sample,在类实现onResp函数,请求完成(如支付)后,招商银行APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,如果请求(如支付)处理成功则去后台查询请求结果再展示用户实际结果。注意:一定不能以客户端的回调结果作为展示给用户的结果,应以服务器端的接收的请求(如支付)处理通知或查询API返回的结果为准。代码示例如下:
- (void)onResp:(CMBResponse *)resp {
if (resp.errCode == 0) {
NSLog(@"Success!");//以后台结果为准
} else {
NSLog(@"xxxx!");//以后台结果为准
}
}