Apple Pay 簡介:
Apple Pay與微信,領取寶領取的比擬:
Apple Pay:Apple零碎級的領取服務,他沒有自己的賬戶,也不參與資金的活動, Apple Pay只是將原有的實體銀行卡變成手機上“虛擬的銀行卡”。Apple Pay依賴iPhone零碎底層的整合。Apple Pay領取的步驟是:拿出手機,接近pos機,屏幕自動點亮,再指紋確認即可,時間可延長到2-3秒。
領取寶和微信領取:使用級的領取服務,微信領取寶掃碼付款的步驟是:拿出手機,解鎖手機,翻開領取寶app,等候歡送動畫,指紋解鎖進入界面,翻開二維碼,最後商家掃碼。這一進程雖然已大大優化,仍需8-10秒左右。
Apple Pay 支持設備: iPhone 6, iPhone 6+, iPad Air 2, iPad mini 3。
這是由於 Apple Pay 需求特定的硬件芯片來支持,這個硬件叫做 Secure Element (簡稱SE,平安元件),他可以用來存儲和加解密信息。
Apple Pay,是蘋果公司在2014年蘋果春季新品發布會上發布的的一種基於NFC(近場通訊)的手機領取,於2014年10月20日在美國正式上線。 2016年2月18日正式登錄中國。Apple Pay的實質=刷卡,只不過是用手機來替代了實體的卡片,用Touch ID來替代簽名。
Apple Pay支持版本號:IOS8.0以上的版本,最好晉級到IOS9.2以上,IOS9.2以上添加了對銀聯卡的支持。
首批支持 Apple Pay的銀行有:中國農業銀行、中國銀行、上海銀行、中國建立銀行、中信銀行、招商銀行、民生銀行、廣發銀行、中國工商銀行、興業銀行、中國郵政儲蓄銀行、上海浦東開展銀行。
以下銀即將會陸續支持 Apple Pay:安全銀行、光大銀行、廣州銀行、華夏銀行、寧波銀行、交通銀行、北京銀行。
Apple Pay 開發步驟:
1.運用Xcode創立一個項目,並設置好對應的BundleID。
2.注冊並配置一個商業標識符。
3.創立使用,開啟Apple Pay領取。
上面詳解Apple Pay開發步驟:
1.運用Xcode創立一個項目,並設置好對應的BundleID。
2.注冊並配置一個商業標識符。
登錄開發者中心,https://developer.apple.com/account/,進入證書配置欄目,添加一個AppID,AppID必需支持Apple Pay
點擊Continue持續,這時,Apple Pay的形態為Configurable,必需配置Merchant ID(商戶ID)
點擊App ID的Edit,配置MerchantID
進入以下界面
若有Merchant ID,則選擇Merchant ID,跳過創立Merchant ID步驟,
進入Merchant ID創立界面,創立Merchant ID,留意Merchant ID必需以Merchant掃尾。
創立Merchant ID完成後,選擇App ID界面,選擇Edit,你以後創立的Merchant就會顯示出來,選擇Merchant ID,
這時進入App ID界面,就會發現以後Apple Pay可用
3,選擇Merchant ID,點擊Edit,創立CSR證書
選擇YES
點擊持續
創立證書懇求文件
進入零碎鑰匙串,
至此,懇求證書創立完成
上傳懇求證書
點擊Continue,進入證書下載頁面,點擊下載裝置
假如呈現以下狀況
這闡明裝置證書有效,點擊https://www.apple.com/certificateauthority/,
點擊WWDR Certificate(Expiring 02/07/23)下載裝置,這時,CSR無效
至此,環境配置成功
4.翻開Xcode項目,翻開Apple Pay服務
設置版本號
5.代碼完成
判別以後設備能否支持Apple Pay
// 1.判別以後設備能否支持Applypay
if (![PKPaymentAuthorizationViewController canMakePayments]) {
NSLog(@"以後設備不支持Applypay");
self.payView.hidden = YES;
}else {
// 判別以後wallet能否添加了銀行卡
if (![PKPaymentAuthorizationViewController canMakePaymentsUsin.networks:@[PKPaymen.networkVisa,PKPaymen.networkChinaUnionPay]]) {
// 創立一個跳轉按鈕,當用戶點擊按鈕時,跳轉到添加銀行卡的界面
PKPaymentButton *button = [PKPaymentButton buttonWithType:PKPaymentButtonTypeSetUp style:PKPaymentButtonStyleBlack];
[button addTarget:self action:@selector(jump) forControlEvents:UIControlEventTouchUpInside];
[self.payView addSubview:button];
}else {
// 創立一個領取按鈕,當用戶點擊按鈕時,購置商品
PKPaymentButton *button = [PKPaymentButton buttonWithType:PKPaymentButtonTypeBuy style:PKPaymentButtonStyleBlack];
[button addTarget:self action:@selector(buy) forControlEvents:UIControlEventTouchUpInside];
[self.payView addSubview:button];
}
}
點擊領取
// 跳轉到添加銀行卡界面
- (void)jump {
PKPassLibrary *pl = [[PKPassLibrary alloc] init];
[pl openPaymentSetup];
}
// 購置
-(void)buy {
NSLog(@"購置商品,開端領取");
//1.創立一個領取懇求
PKPaymentRequest *request = [[PKPaymentRequest alloc] init];
//1.1 配置領取懇求
//1.1.1 配置商家ID(留意設置為Merchant ID)
request.merchantIdentifier = @"merchant.com.lianranpay";
//1.1.2 配置貨幣代碼,以及國度代碼
request.countryCode = @"CN";
request.currencyCode = @"CNY";
//1.1.3 配置懇求支持的領取網絡
request.supportedNetworks = @[PKPaymentNetworkVisa,PKPaymentNetworkChinaUnionPay];
//1.1.4 設置商戶的處置方式
request.merchantCapabilities = PKMerchantCapability3DS;
//1.1.5 配置購置的商品列表
NSDecimalNumber *price1 = [[NSDecimalNumber alloc] initWithString:@"1.28"];
PKPaymentSummaryItem *item1 = [PKPaymentSummaryItem summaryItemWithLabel:@"蘋果派" amount:price1];
NSDecimalNumber *price11 = [[NSDecimalNumber alloc] initWithString:@"1.28"];
PKPaymentSummaryItem *item11 = [PKPaymentSummaryItem summaryItemWithLabel:@"蘋果派" amount:price11];
// 留意領取列表最後一個代表匯總
NSDecimalNumber *price111 = [[NSDecimalNumber alloc] initWithString:@"2.56"];
PKPaymentSummaryItem *item111 = [PKPaymentSummaryItem summaryItemWithLabel:@"祺績財務" amount:price111];
request.paymentSummaryItems = @[item1,item11,item111];
//1.2 配置懇求的附加項
//1.2.1 能否顯示發票播種地址,顯示哪些選項
request.requiredBillingAddressFields = PKAddressFieldAll;
//1.2.2 能否顯示快遞播種地址,顯示哪些選項
request.requiredShippingAddressFields = PKAddressFieldAll;
//1.2.3 配置快遞方式
NSDecimalNumber *price2 = [[NSDecimalNumber alloc] initWithString:@"18.0"];
PKShippingMethod *methods1 = [PKShippingMethod summaryItemWithLabel:@"順風快遞" amount:price2];
methods1.detail = @"24小時內送到";
methods1.identifier = @"shunfeng";
NSDecimalNumber *price3 = [[NSDecimalNumber alloc] initWithString:@"10.0"];
PKShippingMethod *methods2 = [PKShippingMethod summaryItemWithLabel:@"韻達快遞" amount:price3];
methods2.detail = @"送貨上門";
methods2.identifier = @"yunda";
request.shippingMethods = @[methods1,methods2];
//1.2.3.2 配置快遞的類型
request.shippingType = PKShippingTypeStorePickup;
//1.3 添加一些附加數據
request.applicationData = [@"buyID=12345" dataUsingEncoding:NSUTF8StringEncoding];
//2.驗證用戶的領取受權
PKPaymentAuthorizationViewController *authVC = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];
authVC.delegate = self;
[self presentViewController:authVC animated:YES completion:nil];
}
PKPaymentAuthorizationViewControllerDelegate協議辦法
// 假如當用戶受權成功,調用辦法
/*
controller:受權控制器
payment:領取對象
completion:零碎給定的一個回調代碼塊,我們需求執行這個代碼塊,來通知零碎以後的領取形態斯否成功
*/
- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller
didAuthorizePayment:(PKPayment *)payment
completion:(void (^)(PKPaymentAuthorizationStatus status))completion{
// 普通在此處,拿到領取信息,發送給服務器處置,處置終了後,服務器會前往一個形態,通知可會斷,能否領取成功,然後由客戶端停止處置
BOOL isSucess = YES;
/*
服務器處置
* 驗證領取數據的哈希表與簽名
* 為加密過的領取數據解碼
* 向領取處置零碎提交領取數據
* 向訂單追蹤零碎提交訂單
*/
if (isSucess) {
completion(PKPaymentAuthorizationStatusSuccess);
}else {
completion(PKPaymentAuthorizationStatusFailure);
}
}
// 當用戶受權成功,或取消受權時運用
- (void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller{
NSLog(@"受權完畢");
[self dismissViewControllerAnimated:YES completion:nil];
}
Apple Pay 領取開發成功,預祝各位碼農新年高興!如有缺乏,請見諒!
【iOS Apple Pay】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!