iOS信用卡支付接入iPayLinks及开发注意点,ios开发信用卡支付,ios支付开发IOS信用卡支付访问iPayLinks和开发点这几天在做新版本需求,因为项目面向国际市场,涉及的付款问题比较隐蔽。除了支付宝、微信、银联、apple pay等国内知名的支付方式外,新要求还接入了信用卡支付,以方便国外用户。关于信用卡......
这几天在做新版本需求,因为项目面向国际市场,涉及的付款问题比较隐蔽。除了支付宝、微信、银联、apple pay等国内知名的支付方式外,新要求还接入了信用卡支付,以方便国外用户。关于信用卡支付方式,我们的产品连接到iPayLinks。具体可以在官网搜索查看。
iPayLinks的申请流程不在技术讨论范围内,贵公司的产品可以办理。我们只需要知道应用结果,比如开发文档,demo示例等。
我从产品中获得了以下开发文件:
下面是iOS客户端开发需要的。
IPayLinks商业API获取接口规范v1.1虚拟goods.pdf
IOs设备指纹采集示例. zip
IPayLinks联合调试环境测试卡. txt
IPayLinks信用卡,不提供主SDK调用。ios app设备指纹采集的唯一例子。zip用于生成一个必需的参数。详见《iPayLinks商户API收单接口规范v1.1虚拟商品》中API订购接口的提交参数描述。pdf文档。
因为涉及资金安全,所以提交参数中API key涉及的主要参数需要放在后端。这里的客户端只产生一些与商品订单相关的参数,并提交给后端。后端统一调用支付接口,将支付信息回调给客户端。
一般来说,支付过程没有什么太大的问题。按照流程走就行了。然而,当我正在获取需要提交的参数时,我遇到了一个坑。问题出在设备指纹ID的获取上,让我坑了一段时间。
该参数需要通过ios app设备指纹采集示例演示中的SDK来处理请求生成。它提供的zip。
的主要请求生成代码如下:
Mtrustconsumer是一个singleton,它由configure方法初始化。这里的NSDictionary内容只是跟在演示后面。
/*!*使用提供的配置字典配置TrustDefenderMobile对象的共享实例。* @ code *[THM configure:@ { THMOrgID:@ my orgid }];* @ endcode * * @返回配置调用的结果。* * @remark此方法只运行一次,对它的任何后续调用都无效。*/(BOOL)configure:(ns dictionary *)config;
这里,profileComplete是它的代理回调方法,用来生成指纹识别id。
/*!*一旦分析完成,就调用此方法。* * @param profileResults描述分析状态*/(void)profile complete:(ns dictionary *)profile results;
如果到了这里,按照演示就可以生成需要的参数(补充,这里有个坑爹的,文档里没有说清楚。这里所需的设备指纹id实际上与订单id相同。这里返回的profileResults中的sessionid都不是设备指纹id,请求生成过程也只是一个验证过程,只要能成功就行,回调信息也不是必需的参数),但问题出在这里的THM Dele。因为THMTrustDefender是单例的,然后代理就是当前的页面控制器对象。有一个问题。当我支付后退出这个界面,然后继续生成新订单时,我会再次来到这个支付选择界面。然后在生成设备的指纹id时,回调一直没有进入。问题是THMTrustDefender是单个案例,可能之前第一次持有了这个接口控制器,导致回调没有响应新进入的接口控制器。
然后我想了想,看了看THMTrustDefender。幸运的是,它有一个块回调。如果THMDelegate不使用block,就不会受到单实例问题的影响。
然后还有一个解决方案,只要这个指定THMDelegate不是当前的接口控制器。你可以生成一个singleton类来单独处理设备指纹识别,只要把它回调到当前接口就可以了。
特别声明:以上文章内容仅代表作者本人观点,不代表ESG跨境电商观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与ESG跨境电商联系。
二维码加载中...
使用微信扫一扫登录
使用账号密码登录
平台顾问
微信扫一扫
马上联系在线顾问
小程序
ESG跨境小程序
手机入驻更便捷
返回顶部