簡(jiǎn)述ApplePay

Apple Pay

公司在2014蘋果秋季新品發(fā)布會(huì)上發(fā)布的一種基于NFC近距離無線通訊技術(shù)的手機(jī)支付功能,于2014年10月20日在美國(guó)正式上線。
2016年2月18日凌晨5:00, Apple Pay 業(yè)務(wù)在中國(guó)上線。

屏幕快照 2016-08-02 下午6.20.32.png

支持系統(tǒng)和機(jī)型

操作系統(tǒng)最低iOS9.0以上,部分信息設(shè)置需要iOS9.2以上


適用設(shè)備.png

App接入Apple Pay

  • 基于iOS的PassKitFramework:
    需要對(duì)Payment Sheet的邏輯和異常情況做好相應(yīng)的UI處理。同時(shí)在后臺(tái)也需要做好支付信息解密、銀聯(lián)接口的交互以及訂單狀態(tài)處理。
  • 使用第三方SDK接入
  • 中國(guó)銀聯(lián)
  • 連連支付
  • 首信易支付
  • 易寶支付
    蘋果目前建議國(guó)內(nèi)和第三方合作接入ApplePay,能夠省去了一家家銀行簽約的過程,由第三方和一家家銀行溝通事項(xiàng),商戶和第三方溝通。所以簽約部分就是和第三方支付平臺(tái)簽約了,錢會(huì)進(jìn)入和第三方簽約的銀行卡內(nèi)。

基于基于iOS PassKit Framework 接入Apple Pay

集成

  • 導(dǎo)入頭文件
#import<PassKit/PassKit.h>用戶綁定的銀行卡信息
#import<PassKit/PKPaymentAuthorizationViewController.h>Apple pay的展示控件
  • 系統(tǒng)檢測(cè)
if (![PKPaymentAuthorizationViewController class]) {
        PKPaymentAuthorizationViewController需iOS8.0以上支持
        return;
    }
  • 設(shè)備檢測(cè)
 if (![PKPaymentAuthorizationViewController canMakePayments]) {
        支付需iOS9.0以上支持
     如果當(dāng)前設(shè)備不支持ApplePay需要隱藏ApplePay支付按鈕
        return;
    }
  • 檢測(cè)用戶可進(jìn)行支付卡的類型
是否支持Amex、MasterCard、Visa與銀聯(lián)四種卡,根據(jù)自己項(xiàng)目的需要進(jìn)行檢測(cè)
NSArray *supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard,PKPaymentNetworkVisa,PKPaymentNetworkChinaUnionPay];
if (![PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:supportedNetworks]) 
{
  如果當(dāng)前設(shè)備未設(shè)置/當(dāng)前設(shè)備設(shè)置的支付銀行卡無法在商戶提供的支付平臺(tái)支付,則隱藏ApplePay支付按鈕,可以顯示SetApple Pay按鈕(可選),提醒用戶進(jìn)行設(shè)置ApplePay。
        return;
}
  • 創(chuàng)建支付請(qǐng)求
PKPaymentRequest
?//設(shè)置幣種、國(guó)家碼及merchant標(biāo)識(shí)符等基本信息
PKPaymentRequest *payRequest = [[PKPaymentRequest alloc]init];
payRequest.countryCode = @"CN";     //國(guó)家代碼
payRequest.currencyCode = @“CNY”;       //RMB的幣種代碼payRequest.merchantIdentifier = @“merchant.ApplePayAiitecDemo”;  //申請(qǐng)的merchantID
payRequest.supportedNetworks = supportedNetworks;   //用戶可進(jìn)行支付的銀行卡
payRequest.merchantCapabilities = PKMerchantCapability3DS|PKMerchantCapabilityEMV; 
  • 送貨地址
需要根據(jù)不同的商品類型來設(shè)置requiredShippingAddressFields
?如果使電子/虛擬商品(一般為提取/下載鏈接),則顯示聯(lián)系人郵箱。
?如果為實(shí)物,則顯示聯(lián)系人地址、手機(jī)號(hào)以及郵箱
payRequest.requiredShippingAddressFields = PKAddressFieldPostalAddress|PKAddressFieldPhone|PKAddressFieldName;
  //送貨地址信息,這里設(shè)置需要地址和聯(lián)系方式和姓名,如果需要進(jìn)行設(shè)置,默認(rèn)PKAddressFieldNone(沒有送貨地址)
  • 配送方式
//設(shè)置商品的配送方式
 PKShippingMethod *freeShipping = [PKShippingMethod summaryItemWithLabel:@"包郵" amount:[NSDecimalNumber zero]];
  freeShipping.identifier = @"freeshipping";
  freeShipping.detail = @"6-8 天 送達(dá)";
   
  PKShippingMethod *expressShipping = [PKShippingMethod summaryItemWithLabel:@"極速送達(dá)" amount:[NSDecimalNumber decimalNumberWithString:@"10.00"]];
  expressShipping.identifier = @"expressshipping";
  expressShipping.detail = @"2-3 小時(shí) 送達(dá)”;
  payRequest.shippingMethods = @[freeShipping, expressShipping];
  • 賬單信息
賬單列表使用PKPaymentSummaryItem添加描述和價(jià)格,價(jià)格使用NSDecimalNumber。
PKPaymentSummaryItem初始化:
label為商品名字或者是描述,amount為商品價(jià)格,折扣為負(fù)數(shù),type為該條賬單為最終價(jià)格還是估算價(jià)格
NSDecimalNumber*subtotalAmount= [NSDecimalNumber decimalNumberWithMantissa:1275 exponent:-2isNegative:NO];   //12.75
    PKPaymentSummaryItem *subtotal =[PKPaymentSummaryItem summaryItemWithLabel:@"商品價(jià)格"amount:subtotalAmount];
    NSDecimalNumber*discountAmount = [NSDecimalNumber decimalNumberWithString:@"-12.74"];      //-12.74
    PKPaymentSummaryItem *discount =[PKPaymentSummaryItem summaryItemWithLabel:@"優(yōu)惠折扣"amount:discountAmount];  

關(guān)于NSDecimalNumber

  • 顯示Apple Pay 控件
 PKPaymentAuthorizationViewController *viewController = [[PKPaymentAuthorizationViewController alloc]initWithPaymentRequest:payRequest];
 viewController.delegate= self;
 [self presentViewController:viewController animated:YES completion:nil];
界面1.png

界面2.png

代理方法

代理方法.png

Apple Pay UI強(qiáng)制要求

UI要求.png

官方文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Apple Pay運(yùn)行環(huán)境:iPhone6以上設(shè)備,操作系統(tǒng)最低iOS9.0以上,部分信息設(shè)置需要iOS9.2以上...
    Yasin的簡(jiǎn)書閱讀 45,102評(píng)論 78 130
  • 本文為轉(zhuǎn)載文章,作者:Yasin Apple Pay運(yùn)行環(huán)境:iPhone6以上設(shè)備,操作系統(tǒng)最低iOS9.0以上...
    iOS楊閱讀 712評(píng)論 0 2
  • Apple Pay運(yùn)行環(huán)境:iPhone6以上設(shè)備,操作系統(tǒng)最低iOS9.0以上,部分信息設(shè)置需要iOS9.2以上...
    cym_bj閱讀 5,220評(píng)論 3 7
  • Apple Pay運(yùn)行環(huán)境:iPhone6以上設(shè)備,操作系統(tǒng)最低iOS9.0以上,部分信息設(shè)置需要iOS9.2以上...
    YYT1992閱讀 1,000評(píng)論 0 0
  • 因?yàn)橥碜粤?xí)要做數(shù)學(xué)試題,課代表問一下有誰去洗澡,希望這些同學(xué)早點(diǎn)回來。 我一看,準(zhǔn)備去洗澡的同學(xué)也就七八個(gè)。 我再...
    稼軒李德智閱讀 708評(píng)論 0 4

友情鏈接更多精彩內(nèi)容