Apple pay --作為開發(fā)人員你必要了解的東西


最近一個(gè)特別火的詞組出現(xiàn)在我們的生活中Apple Pay,大家又對(duì)其了解多少呢?其實(shí)在 iOS8.1 之后 Apple Pay 功能已經(jīng)開放了,只不過在大陸在今年 2 月才可以使用,Apple Pay 是一個(gè)基于 NFC 的支付系統(tǒng),類似于你的銀行卡,走到哪刷到哪,那么作為開發(fā)人員的我們?cè)撊绾稳ラ_發(fā)和使用呢?

1、我們要去設(shè)置Merchant IDs

Merchat IDs 設(shè)置
在設(shè)置 Identifier 的時(shí)候要注意 ID 的格式
Merchat IDs identifier 設(shè)置

注冊(cè)成功以后

點(diǎn)擊Edit

點(diǎn)擊Continue

Choose File

從證書頒發(fā)機(jī)構(gòu)請(qǐng)求證書

選擇

下載

2、到目前為止我們的基本設(shè)置已經(jīng)設(shè)置好了,現(xiàn)在我們要去Xcode里面去配置相關(guān)信息

由于我們要在真機(jī)上測(cè)試,所以我們要選擇描述文件(模擬器上也可以進(jìn)行測(cè)試)
屏幕快照 2016-02-23 16.16.04.png
我們?cè)赬code里面把Apple pay打開 (必須是開發(fā)者賬號(hào),否則你的里面是沒有Apple Pay的)
屏幕快照 2016-02-23 16.15.46.png
當(dāng)我們打鉤了以后有可能會(huì)報(bào)兩個(gè)錯(cuò)
0C85B03A5F41E601EC8A24E8EACCDD8F.jpg
這個(gè)時(shí)候回到點(diǎn)擊fix即可
屏幕快照 2016-02-24 11.32.24.png

3、代碼示范

導(dǎo)入頭文件PassKit/PassKit.h 遵循PKPaymentAuthorizationViewControllerDelegate
#pragma mark ----支付狀態(tài)
- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller
                       didAuthorizePayment:(PKPayment *)payment
                                completion:(void (^)(PKPaymentAuthorizationStatus status))completion
{
    NSLog(@"花費(fèi): %@", payment);

    BOOL asyncSuccessful = FALSE;
    if(asyncSuccessful) {
        completion(PKPaymentAuthorizationStatusSuccess);

        NSLog(@"支付成功");

    } else {
        completion(PKPaymentAuthorizationStatusFailure);

        NSLog(@"支付失敗");
    }
}

#pragma mark ----支付完成
- (void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller {
  
    // 支付完成后讓支付頁(yè)面消失
    [controller dismissViewControllerAnimated:YES completion:nil];
}
支付方法
#pragma mark -----點(diǎn)擊支付
- (IBAction)checkOut:(id)sender
{
    if([PKPaymentAuthorizationViewController canMakePayments]) {

        NSLog(@"支持支付");

        // 我們后面創(chuàng)建出來的支付頁(yè)面就是根據(jù)這個(gè)request
        PKPaymentRequest *request = [[PKPaymentRequest alloc] init];
        // 商品目錄
        PKPaymentSummaryItem *widget1 = [PKPaymentSummaryItem summaryItemWithLabel:@"大展"
                                                                            amount:[NSDecimalNumber decimalNumberWithString:@"0.01"]];

        PKPaymentSummaryItem *widget2 = [PKPaymentSummaryItem summaryItemWithLabel:@"小展"
                                                                            amount:[NSDecimalNumber decimalNumberWithString:@"0.01"]];

        PKPaymentSummaryItem *widget3 = [PKPaymentSummaryItem summaryItemWithLabel:@"2個(gè)大展"
                                                                            amount:[NSDecimalNumber decimalNumberWithString:@"0.02"]];

        PKPaymentSummaryItem *widget4 = [PKPaymentSummaryItem summaryItemWithLabel:@"總金額" amount:[NSDecimalNumber decimalNumberWithString:@"0.01"] type:PKPaymentSummaryItemTypeFinal];

        request.paymentSummaryItems = @[widget1, widget2, widget3, widget4];
        request.countryCode = @"CN";
        request.currencyCode = @"CNY";//人民幣
        request.supportedNetworks = @[PKPaymentNetworkChinaUnionPay, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa];
       
        // 這里填的是就是我們創(chuàng)建的merchat IDs
        request.merchantIdentifier = @"merchant.com.dazhan.applePayDemo";
        request.merchantCapabilities = PKMerchantCapabilityCredit;
        //增加郵箱及地址信息
        request.requiredBillingAddressFields = PKAddressFieldEmail | PKAddressFieldPostalAddress;

        // 根據(jù)request去創(chuàng)建支付頁(yè)面
        PKPaymentAuthorizationViewController *paymentPane = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];
        
        // 設(shè)置代理
        paymentPane.delegate = self;

        if (!paymentPane) {

            NSLog(@"出問題了");
        } else {

            // 模態(tài)推出頁(yè)面
            [self presentViewController:paymentPane animated:YES         completion:nil];
        }     
    } else {

        NSLog(@"該設(shè)備不支持支付");
    }
}
效果圖.gif

如有雷同,你就是抄我的!?????? --大展

最后編輯于
?著作權(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 一個(gè)方便 & 安全的移動(dòng)支付技術(shù),讓用戶完成他們的支付環(huán)節(jié)并把支付相關(guān)的信息告訴你 只可以購(gòu)買...
    skingtree閱讀 2,312評(píng)論 0 4
  • 蘋果支付(Apple Pay): Apple Pay,簡(jiǎn)單來說, 就是一種移動(dòng)支付方式。通過Touch ID/ P...
    西風(fēng)頌閱讀 3,974評(píng)論 6 19
  • Apple Pay的簡(jiǎn)單介紹。 Apple Pay并不是獨(dú)立的第三方支付服務(wù),相比較支付寶和微信支付,他沒有自己的...
    就是很隨意哦閱讀 1,037評(píng)論 0 3
  • 蘋果正式開放了Apple Pay支付系統(tǒng)。Apple Pay是一個(gè)基于NFC的支付系統(tǒng),不久將被數(shù)以萬計(jì)的線下零售...
    再見豬八戒Zz閱讀 1,182評(píng)論 0 18
  • 最近開發(fā)一個(gè)項(xiàng)目,需要負(fù)責(zé)Apple Pay相關(guān)的業(yè)務(wù),所以寫這一篇文章來學(xué)習(xí)和研究Apple Pay相關(guān)的一些內(nèi)...
    就想遇見你閱讀 7,533評(píng)論 7 13

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