Apple Pay (OC)

Apple Pay (OC)


先簡(jiǎn)單介紹一下

1.首先呢來說一說Apple Pay 的使用前提

1)設(shè)備的支持(iPhone6以上版本)

iPhone設(shè)備 支持手機(jī)app內(nèi)支付 店內(nèi)支付

Apple Watch 支持店內(nèi)支付

iPad 支持app內(nèi)支付

2)系統(tǒng)的支持(iOS8.0+版本袜刷,最好升級(jí)到當(dāng)前最新版本iOS9.2)(iOS9.2,Apple Pay 增加了對(duì)銀聯(lián)卡的支持,此時(shí)就意味著可以在國(guó)內(nèi)使用了)

使用的時(shí)候 需要在wallet應(yīng)用當(dāng)中水泉,輸入銀行卡信息(銀行支持)

2.應(yīng)用場(chǎng)景呢

1)線下支付 (商家支持:要求必須有支持NFC的刷卡機(jī))

2)線上支付

接下來要說的就是app開發(fā)集成步驟了

1.配置支付環(huán)境

1)使用XCode創(chuàng)建一個(gè)工程窒盐,并設(shè)置好對(duì)應(yīng)的BundleID

//com.sn.ApplePay

2)注冊(cè)并配置一個(gè)商業(yè)標(biāo)示符

登陸開發(fā)者中心

進(jìn)入證書配置欄目

添加一個(gè)App ID (App Services開啟Apple Pay)

配置Merchant ID

為Merchant ID 配置證書,并下載證書安裝到鑰匙串 (會(huì)有一個(gè)問題提示是否支持美國(guó)以外的地區(qū)使用蟹漓,選擇yes no是不同的,按照提示做就可以)

檢查安裝到鑰匙串中的證書是否有效

綁定Merchant ID到App ID

3)配置XCode項(xiàng)目葡粒,開啟Apple Pay功能

系統(tǒng)版本調(diào)到最低iOS8.0

開啟Apple Pay功能



2.代碼實(shí)現(xiàn)

#import?//支付框架

-?(void)appLePayDemo?{

//PKPaymentButton//自帶樣式按鈕?(Apple?Pay)

//判斷當(dāng)前設(shè)備是否支持蘋果支付

if(![PKPaymentAuthorizationViewController?canMakePayments])?{

NSLog(@"當(dāng)前設(shè)備不支持Apply?Pay");

return;

}


//判斷是否添加了銀行卡

/*

extern?NSString?*?const?PKPaymentNetworkAmex?NS_AVAILABLE(NA,?8_0);

extern?NSString?*?const?PKPaymentNetworkChinaUnionPay?NS_AVAILABLE(NA,?9_2);

extern?NSString?*?const?PKPaymentNetworkDiscover?NS_AVAILABLE(NA,?9_0);

extern?NSString?*?const?PKPaymentNetworkInterac?NS_AVAILABLE(NA,?9_2);

extern?NSString?*?const?PKPaymentNetworkMasterCard?NS_AVAILABLE(NA,?8_0);

extern?NSString?*?const?PKPaymentNetworkPrivateLabel?NS_AVAILABLE(NA,?9_0);

extern?NSString?*?const?PKPaymentNetworkVisa?NS_AVAILABLE(NA,?8_0);

*/

//?目前判斷?visa卡?銀聯(lián)卡?銀聯(lián)卡(iOS9.2)

if(![PKPaymentAuthorizationViewController?canMakePaymentsUsingNetworks:@[PKPaymentNetworkVisa,PKPaymentNetworkChinaUnionPay]])?{

//創(chuàng)建一個(gè)按鈕用戶點(diǎn)擊跳轉(zhuǎn)添加銀行卡的界面

PKPaymentButton?*?button?=?[PKPaymentButton?buttonWithType:PKPaymentButtonTypeSetUp?style:PKPaymentButtonStyleWhiteOutline];

//添加到界面上

//添加點(diǎn)擊事件

[button?addTarget:self?action:@selector(jump)?forControlEvents:UIControlEventTouchUpInside];

}

//創(chuàng)建一個(gè)購(gòu)買按鈕

PKPaymentButton?*?button?=?[PKPaymentButton?buttonWithType:PKPaymentButtonTypeBuy?style:PKPaymentButtonStyleBlack];

//添加到界面上

//添加點(diǎn)擊事件

[button?addTarget:self?action:@selector(buy)?forControlEvents:UIControlEventTouchUpInside];

}

//跳轉(zhuǎn)到添加銀行卡界面

-?(void)jump?{

PKPassLibrary?*?pl?=?[[PKPassLibrary?alloc]?init];

[pl?openPaymentSetup];

}

//購(gòu)買商品

-?(void)buy?{

//創(chuàng)建一個(gè)支付請(qǐng)求

PKPaymentRequest?*?request?=?[[PKPaymentRequest?alloc]?init];

//配置支付請(qǐng)求

//配置商家ID

request.merchantIdentifier?=?@"Merchant?ID";//商家ID

//配置貨幣代碼?以及國(guó)家代碼?(中國(guó)的)

request.currencyCode?=?@"CNY";

request.countryCode?=?@"CN";

//配置請(qǐng)求支持的支付網(wǎng)絡(luò)//與上面判斷最好一致

request.supportedNetworks?=?@[PKPaymentNetworkVisa,PKPaymentNetworkChinaUnionPay];

//配置商戶處理方式

/*

PKMerchantCapability3DS?????????????????????????????????=?1UL?<<?0,???//?Merchant?supports?3DS

PKMerchantCapabilityEMV?????????????????????????????????=?1UL?<<?1,???//?Merchant?supports?EMV

PKMerchantCapabilityCredit?NS_ENUM_AVAILABLE_IOS(9_0)???=?1UL?<<?2,???//?Merchant?supports?credit

PKMerchantCapabilityDebit??NS_ENUM_AVAILABLE_IOS(9_0)???=?1UL?<<?3????//?Merchant?supports

PKMerchantCapability3DS?|?PKMerchantCapabilityEMV...

*/

request.merchantCapabilities?=?PKMerchantCapability3DS;

//配置購(gòu)買的商品列表

/*

+?(instancetype)summaryItemWithLabel:(NSString?*)label?amount:(NSDecimalNumber?*)amount;

+?(instancetype)summaryItemWithLabel:(NSString?*)label?amount:(NSDecimalNumber?*)amount?type:(PKPaymentSummaryItemType)type?NS_AVAILABLE(NA,?9_0);

PKPaymentSummaryItemTypeFinal,??????//?The?payment?summary?item's?amount?is?known?to?be?correct?確定的

PKPaymentSummaryItemTypePending?????//?The?payment?summary?item's?amount?is?estimated?or?unknown?-?e.g,?a?taxi?fare?不確定的

*/

//注意:?支付列表最后一個(gè)代表匯總

NSDecimalNumber?*?price1?=?[NSDecimalNumber?decimalNumberWithString:@"10.00"];

PKPaymentSummaryItem?*?item1?=?[PKPaymentSummaryItem?summaryItemWithLabel:@"商品名稱"amount:price1];

NSDecimalNumber?*?price2?=?[NSDecimalNumber?decimalNumberWithString:@"10.00"];

PKPaymentSummaryItem?*?item2?=?[PKPaymentSummaryItem?summaryItemWithLabel:@"商品名稱"amount:price2];

//匯總以上兩個(gè)商品

NSDecimalNumber?*?price3?=?[NSDecimalNumber?decimalNumberWithString:@"20.00"];

PKPaymentSummaryItem?*?item3?=?[PKPaymentSummaryItem?summaryItemWithLabel:@"某某公司或者商城"amount:price3];

request.paymentSummaryItems?=?@[item1,item2,item3];

//配置請(qǐng)求的附加項(xiàng)

/*

PKAddressFieldNone

PKAddressFieldPostalAddress

PKAddressFieldPhone

PKAddressFieldEmail

PKAddressFieldName

PKAddressFieldAll

*/

//是否顯示?invoice?收貨地址?顯示哪些選項(xiàng)

request.requiredBillingAddressFields?=?PKAddressFieldAll;

//是否顯示快遞地址?顯示哪些選項(xiàng)

request.requiredShippingAddressFields?=?PKAddressFieldAll;

//配置快遞方式?NSArray?

NSDecimalNumber?*?p1?=?[NSDecimalNumber?decimalNumberWithString:@"18.00"];

PKShippingMethod?*?method1?=?[PKShippingMethod?summaryItemWithLabel:@"順風(fēng)快遞"amount:p1];

method1.identifier?=?@"shunfeng";

//詳細(xì)描述

method1.detail?=?@"24小時(shí)送到";

NSDecimalNumber?*?p2?=?[NSDecimalNumber?decimalNumberWithString:@"10.00"];

PKShippingMethod?*?method2?=?[PKShippingMethod?summaryItemWithLabel:@"申通快遞"amount:p2];

method2.identifier?=?@"shentong";

method2.detail?=?@"送貨上門";

request.shippingMethods?=?@[method1,method2];

//配置快遞的類型?自取?等

/*

PKShippingTypeShipping,

PKShippingTypeDelivery,

PKShippingTypeStorePickup,

PKShippingTypeServicePickup

*/

request.shippingType?=?PKShippingTypeStorePickup;

//添加一些附加的數(shù)據(jù)

request.applicationData?=?[@"buyID=12345"dataUsingEncoding:NSUTF8StringEncoding];

//驗(yàn)證用戶的支付授權(quán)

PKPaymentAuthorizationViewController?*?avc?=?[[PKPaymentAuthorizationViewController?alloc]?initWithPaymentRequest:request];

[self?presentViewController:avc?animated:YES?completion:nil];

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市颂斜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌沃疮,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件司蔬,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡俊啼,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門授帕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人豪墅,你說我怎么就攤上這事泉手∨计鳎” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵屏轰,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我霎苗,道長(zhǎng),這世上最難降的妖魔是什么唁盏? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任检眯,我火速辦了婚禮,結(jié)果婚禮上昆淡,老公的妹妹穿的比我還像新娘。我一直安慰自己昂灵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布眨补。 她就那樣靜靜地躺著,像睡著了一般撑螺。 火紅的嫁衣襯著肌膚如雪含思。 梳的紋絲不亂的頭發(fā)上实蓬,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天吊履,我揣著相機(jī)與錄音,去河邊找鬼艇炎。 笑死酌伊,一個(gè)胖子當(dāng)著我的面吹牛缀踪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播驴娃,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼唇敞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起疆柔,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤咒精,失蹤者是張志新(化名)和其女友劉穎旷档,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鞋屈,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡故觅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年渠啊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片昭抒。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖灭返,靈堂內(nèi)的尸體忽然破棺而出盗迟,到底是詐尸還是另有隱情熙含,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布怎静,位于F島的核電站邮弹,受9級(jí)特大地震影響蚓聘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜夜牡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望塘装。 院中可真熱鬧急迂,春花似錦蹦肴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)裂七。三九已至皆看,卻和暖如春背零,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工嫉称, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人灵疮。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像震捣,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蒿赢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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