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跨境小程序
手機入駐更便捷
返回頂部