銀聯(lián) Apple Pay 接入指南

前言
ApplePay是蘋果公司推出的一種線上/線下的便捷支付方式,根據(jù)TouchId來驗(yàn)證支付卡持卡人身份砾医,ApplePay并不參與資金流動拿撩,最終還是讓銀行完成扣款處理,目前據(jù)Apple介紹只配備在iphone6以上和新款的ipad Air2和ipad mini3上如蚜,中國地區(qū)最低系統(tǒng)要求為iOS9.2.

注意:Apple Pay功能支持的是iPhone6以上,iOS9.2以上. 且目前企業(yè)級證書是不支持的,只有個(gè)人開發(fā)者證書才支持.

一压恒、 Apple Pay 支付流程介紹

1影暴、買家在手機(jī)應(yīng)用中購買商品或服務(wù),在訂單頁面中展示 Apple Pay 按鈕

2探赫、通過銀聯(lián)控件型宙,掉起 Apple Pay 支付頁面

3、用戶通過支付頁面驗(yàn)證 Touch ID伦吠,輸入銀行卡密碼 ,是否需要輸入銀行卡密碼取決于交易限額和銀行支持情況

4妆兑、支付成功,商戶應(yīng)用內(nèi)展示成功頁面

(1)支付成功頁面應(yīng)參照 UI 示例毛仪,展示“銀聯(lián)”標(biāo)識搁嗓,“云閃付”標(biāo)識。

(2)銀聯(lián) SDK 控件支持折扣功能箱靴。在折扣活動期間腺逛,商戶應(yīng)用內(nèi)應(yīng)參照實(shí)例 UI 進(jìn)行原金額、折扣金額的展示

二衡怀、銀聯(lián)支付控件 SDK 模式 Apple Pay 支付的實(shí)現(xiàn)方式

  • 獲取訂單信息tn編號

1-2棍矛、 商戶生成訂單,通過商戶 SERVER 端將訂單信息發(fā)送給銀聯(lián)支付網(wǎng)關(guān);

3-4抛杨、銀聯(lián)支付網(wǎng)關(guān)記錄訂單信息够委,返回用來標(biāo)識訂單的 TN 號,經(jīng)由商戶 SERVER 返回至給 商戶 APP;

  • 調(diào)用銀聯(lián)SDK方法發(fā)起支付請求

5蝶桶、 商戶 APP 調(diào)用銀聯(lián) SDK,將 TN 號傳遞給銀聯(lián) SDK

6掉冶、 銀聯(lián) SDK 向 Apple 公司的 PASSKIT FRAMEWORK 發(fā)起支付請求;

  • 支付驗(yàn)證

7真竖、 接口返回加密的支付 Token 信息;

8-9、銀聯(lián) SDK 將支付 Token 傳遞給銀聯(lián)支付網(wǎng)關(guān)厌小,完成交易認(rèn)證;

  • 返回支付結(jié)果

10-12恢共、銀聯(lián)將支付結(jié)果返回給商戶 APP,商戶 SERVER璧亚,商戶 APP 負(fù)責(zé)提示用戶交易結(jié)果讨韭。

三、銀聯(lián) SDK 模式下商戶接入銀聯(lián) Apple Pay 在線支付流程

步驟一癣蟋、成為銀聯(lián)手機(jī)支付入網(wǎng)商戶

(1)注冊銀聯(lián)開放平臺賬號(https://open.unionpay.com/ajweb/index

(2)填寫商戶信息并申請成為入網(wǎng)商戶


步驟二透硝、登錄銀聯(lián)商戶服務(wù)平臺,通過商戶服務(wù)平臺申請 CSR文件

  • 關(guān)于商戶 CSR

接入銀聯(lián) Apple Pay 在線支付的商戶疯搅,須生成 Apple Pay 專用的 CSR 文件并提交至 Apple 開發(fā)者網(wǎng)站進(jìn)行簽名濒生,以簽署證書,取得 Apple Pay 的訪問權(quán)限幔欧。

在銀聯(lián) SDK 模式中罪治,銀聯(lián)代為商戶生成 CSR 文件丽声,商戶可直接登錄銀聯(lián)商戶服務(wù)平臺獲取。

  • 商戶 CSR 申請方式:

a觉义、 成為銀聯(lián)商戶服務(wù)平臺用戶雁社。

在申請銀聯(lián) Apple Pay 接入時(shí),銀聯(lián)的聯(lián)系人會分配商戶服務(wù)平臺的登錄權(quán)限及 CSR 的申請權(quán)限晒骇。存量商戶應(yīng)確認(rèn)是否開通了 Apple Pay 接入權(quán)限霉撵。

b、 通過銀聯(lián)商戶服務(wù)平臺申請 CSR

銀聯(lián)在商戶服務(wù)平臺 (https://merchant.unionpay.com/) 中提供 Apple Pay 的CSR文件下載
功能厉碟。

登錄商戶服務(wù)平臺喊巍,進(jìn)入安全管理-CSR 文件下載,點(diǎn)擊“生成 CSR”按鈕箍鼓,并將 獲取的 CSR 保存崭参。
CSR 文件與商戶代碼一一對應(yīng),是交易安全保護(hù)的重要環(huán)節(jié)款咖,請勿將 CSR 透漏給無關(guān)人員何暮。

步驟三、將 CSR 提交至 Apple铐殃,生成 Merchant ID 和 描述文件

  • 1海洼、創(chuàng)建AppID

登錄開發(fā)者中心,創(chuàng)建App ID富腊,填寫描述及Bundle ID坏逢。


  • 2、在App Services里勾選 Apple Pay Payment Processing 以開啟該功能
002.png

點(diǎn)擊Continue后赘被,會發(fā)現(xiàn)概覽該App ID時(shí)是整,Apple Pay服務(wù)是等待配置狀態(tài)的,接下來點(diǎn)擊Register繼續(xù)

003.png
  • 3民假、創(chuàng)建 Merchant ID浮入,并綁定到相關(guān)App ID
004.png
  • 4、由于加密需要證書羊异,所以還要對剛創(chuàng)建的Merchant ID添加證書(加密根據(jù)證書來的),Merchant ID點(diǎn)Edit


    005.png

點(diǎn)擊 Create Certificate, 這里詢問是否支持中國以外的地區(qū)處理支付事秀,這里要根據(jù)實(shí)際需求選擇

006.png

Continue后,需要上傳一個(gè)CSR文件(銀聯(lián)在商戶服務(wù)平臺下載的那個(gè)CSR文件)

007.png

把生成的cer文件下載到本地野舶,雙擊安裝
此時(shí)查看鑰匙串發(fā)現(xiàn)該證書顯示 “此證書是由未知頒發(fā)機(jī)構(gòu)簽名的”
解決辦法:重新下載系統(tǒng)證書 Worldwide Developer Relations - G2 Certificate 并雙擊安裝
http://www.apple.com/certificateauthority/

  • 5易迹、配置 App ID中Apple Pay服務(wù)

由于剛才創(chuàng)建的App ID中Apple Pay服務(wù)仍處于待配置狀態(tài),在App IDs列表中找到剛才創(chuàng)建的App ID展開平道,點(diǎn)擊Edit對其進(jìn)行編輯赴蝇。

008.png

在彈出的界面中勾選對應(yīng)的Merchant ID,Continue

009.png

然后Assign巢掺,此時(shí)就完成了為App ID添加 Merchant ID句伶【Ⅱ撸可以點(diǎn)開該App ID進(jìn)行確認(rèn),可看到Apple Pay服務(wù)已可用

010.png
  • 6考余、生成開發(fā)和發(fā)布描述文件并下載添加到Xcode

步驟四先嬉、創(chuàng)建Xcode工程并為其開啟Apple Pay

  • 1、使用Xcode創(chuàng)建工程楚堤,設(shè)置相關(guān)Bundle ID:


    011.png
  • 2疫蔓、開啟Apple Pay功能:

到Xcode的Capabilities中,找到Apple Pay開關(guān)身冬,打開

012.png
  • 3衅胀、添加銀聯(lián)SDK 并加入依賴的庫文件

a、添加 Apple Pay 版本靜態(tài)庫文件
包含文件:
UPAPayPlugin.h
UPAPayPluginDelegate.h
libUPAPayPlugin.a

b酥筝、添加 CFNetwork.framework 滚躯、 libUPAPayPlugin.a 、 PassKit.framework 嘿歌、 SystemConfiguration.framework 到商戶 App 工程中

c掸掏、http 請求設(shè)置,設(shè)置NSAllowsArbitraryLoads 屬性值為 YES

注意:如果工程的 compile source as 選項(xiàng)的值不是 Objective–C++宙帝,則引用此頭文件的文件類型都要 改為.mm

  • 4丧凤、接口調(diào)用

a、商戶 App 從商戶服務(wù)器獲取 tn步脓,當(dāng) tn 不為空時(shí)愿待,調(diào)用支付接口。

//當(dāng)獲得的tn不為空時(shí)靴患,調(diào)用支付接口
if (tn != nil && tn.length > 0) {
if([PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkChinaUnionPay]] )
{
//調(diào)用銀聯(lián)支付控件
[UPAPayPlugin startPay:tn mode:self.testMode viewController:self delegate:self andAPMechantID:kAppleMechantID]; }
}

b仍侥、處理支付結(jié)果

銀聯(lián)手機(jī)支付控件結(jié)果回調(diào)函數(shù)有四個(gè)支付狀態(tài)返回值,在 UPPayResult 類中有關(guān)于 UPPaymentResultStatus 的詳細(xì)說明蚁廓。

商戶 App 通過在工程中添加頭文件 “UPAPayPluginDelegate.h”访圃,然后在處理交易結(jié)果界面中根據(jù)該頭文件中定義的回調(diào)函數(shù):-(void)UPAPayPluginResult:(UPPayResult *)result 來實(shí)現(xiàn)回調(diào)方法厨幻,從而根據(jù)支付結(jié)果的不同進(jìn)行相應(yīng)的處理相嵌。

結(jié)果回調(diào)函數(shù)示例代碼:

-(void)UPAPayPluginResult:(UPPayResult *)result
{
    if(result.paymentResultStatus == UPPaymentResultStatusSuccess) {
        NSString *otherInfo = result.otherInfo?result.otherInfo:@"";
        NSString *successInfo = [NSString stringWithFormat:@"支付成功\n%@",otherInfo];
        [self showAlertMessage:successInfo];
    }
    else if(result.paymentResultStatus == UPPaymentResultStatusCancel){

        [self showAlertMessage:@"支付取消"];
    }
    else if (result.paymentResultStatus == UPPaymentResultStatusFailure) {
        
        NSString *errorInfo = [NSString stringWithFormat:@"%@",result.errorDescription];
        [self showAlertMessage:errorInfo];
    }
    else if (result.paymentResultStatus == UPPaymentResultStatusUnknownCancel)  {
        
        //TODO UPPAymentResultStatusUnknowCancel表示發(fā)起支付以后用戶取消,導(dǎo)致支付狀態(tài)不確認(rèn)况脆,需要查詢商戶后臺確認(rèn)真實(shí)的支付結(jié)果
        NSString *errorInfo = [NSString stringWithFormat:@"支付過程中用戶取消了饭宾,請查詢后臺確認(rèn)訂單"];
        [self showAlertMessage:errorInfo];
        
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市格了,隨后出現(xiàn)的幾起案子看铆,更是在濱河造成了極大的恐慌,老刑警劉巖盛末,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弹惦,死亡現(xiàn)場離奇詭異否淤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)棠隐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門石抡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人助泽,你說我怎么就攤上這事啰扛。” “怎么了嗡贺?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵隐解,是天一觀的道長。 經(jīng)常有香客問我诫睬,道長煞茫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任岩臣,我火速辦了婚禮溜嗜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘架谎。我一直安慰自己炸宵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布谷扣。 她就那樣靜靜地躺著土全,像睡著了一般。 火紅的嫁衣襯著肌膚如雪会涎。 梳的紋絲不亂的頭發(fā)上裹匙,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機(jī)與錄音末秃,去河邊找鬼概页。 笑死,一個(gè)胖子當(dāng)著我的面吹牛练慕,可吹牛的內(nèi)容都是我干的惰匙。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼铃将,長吁一口氣:“原來是場噩夢啊……” “哼项鬼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起劲阎,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤绘盟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體龄毡,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吠卷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沦零。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撤嫩。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蠢终,靈堂內(nèi)的尸體忽然破棺而出序攘,到底是詐尸還是另有隱情,我是刑警寧澤寻拂,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布程奠,位于F島的核電站,受9級特大地震影響祭钉,放射性物質(zhì)發(fā)生泄漏瞄沙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一慌核、第九天 我趴在偏房一處隱蔽的房頂上張望距境。 院中可真熱鬧,春花似錦垮卓、人聲如沸垫桂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诬滩。三九已至,卻和暖如春灭将,著一層夾襖步出監(jiān)牢的瞬間疼鸟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工庙曙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留空镜,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓捌朴,卻偏偏與公主長得像吴攒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子男旗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Apple Pay 一個(gè)方便 & 安全的移動支付技術(shù)舶斧,讓用戶完成他們的支付環(huán)節(jié)并把支付相關(guān)的信息告訴你 只可以購買...
    skingtree閱讀 1,777評論 0 4
  • 運(yùn)行環(huán)境## iphone 6 以及以上欣鳖,iOS 9.2 以上察皇。目前不支持企業(yè)證書添加。支持模擬器測試。 環(huán)境配置...
    烏龍謙閱讀 9,075評論 10 18
  • 首先理解 Apple Pay 的支付流程什荣,其中最關(guān)鍵一點(diǎn)就是:Apple 不處理跟扣款相關(guān)的邏輯矾缓,它只負(fù)責(zé)支付信息...
    kayling閱讀 2,170評論 0 3
  • 1.About Apple Pay Apple Pay是一種移動支付技術(shù),讓使用者把它們對真實(shí)的物品和服務(wù)的支付信...
    NEWWORLD閱讀 5,177評論 14 51
  • 生活是殘忍的稻爬,冷冰冰 但人是有溫度的嗜闻,可以融化生活的堅(jiān)冰 如果你對生活哭,它只會更殘忍 如果你夠霸道桅锄,它也會為你讓...
    攝影師強(qiáng)子閱讀 126評論 0 0