Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Apple Pay対応のやりかた

Apple Pay対応のやりかた

potatotips #17で発表した資料の加筆修正版です。

いつかくるそのときの参考になれば幸いです。詳しい対応方法は以下のURLを熟読してください。
https://developer.apple.com/apple-pay/

Shinichiro Oba

May 13, 2015
Tweet

More Decks by Shinichiro Oba

Other Decks in Programming

Transcript

  1. Apple  Payの利利⽤用条件 iPhone  6、iPhone  6  Plus、iPad  Air  2、iPad  mini  3

      iOS  8.1以上   地域設定が「アメリカ合衆国」になっている   Touch  IDまたはパスコードの設定   iCloudアカウント
  2. 対応している決済システム Authorize.Net   Braintree   Chase  Paymentech   CyberSource  

    First  Data   Stripe   TSYS ˞ IUUQTEFWFMPQFSBQQMFDPNBQQMFQBZΑΓൈਮ ݱࡏ
  3. 実装 1. 実⾏行行端末でApple  Payが使えるかどうかの確認   2. Apple  Payのガイドラインに沿ったボタンを表⽰示   3.

    PKPaymentRequestを⽣生成   4. PKPaymentAuthorizationViewControllerを表⽰示   5. PKPaymentAuthorizationViewControllerDelegateの対応
  4. Apple  Payボタンの設置 「Apple  Pay  Button  and  Resources」から好きなの を選んで使う   「Apple

     Pay  Identity  Guidelines」によい例例と悪い 例例が書いてあるので参考にする   iOS  8.3以降降ならPKPaymentButtonで⽣生成できる
  5. PKPaymentRequestの⽣生成 PKPaymentRequest *paymentRequest = [[PKPaymentRequest alloc] init]; paymentRequest.currencyCode = @"USD";

    paymentRequest.countryCode = @"US"; paymentRequest.merchantIdentifier = @“<YOUR MERCHANT ID>"; NSDecimalNumber *amount = [NSDecimalNumber decimalNumberWithMantissa:500 exponent:-2 isNegative:NO]; PKPaymentSummaryItem *summaryItem = [PKPaymentSummaryItem summaryItemWithLabel:@"Mercari" amount:amount]; paymentRequest.paymentSummaryItems = @[summaryItem]; paymentRequest.supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa]; paymentRequest.merchantCapabilities = PKMerchantCapability3DS; paymentRequest.requiredBillingAddressFields = PKAddressFieldPostalAddress;
  6. PKPaymentAuthorizationView ControllerDelegateの対応 - (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller didAuthorizePayment:(PKPayment *)payment completion:(void (^)(PKPaymentAuthorizationStatus))completion {

    // ࢧ෷͍৘ใΛؚΜͩPKPaymentͷΠϯελϯε͕औಘͰ͖Δ // αʔόʹ payment.token ΍ QBZNFOU.billingAddress ͳͲඞཁͳ৘ใΛૹΔ completion(PKPaymentAuthorizationStatusSuccess); } - (void)paymentAuthorizationViewControllerDidFinish:(UIViewController *)controller { [controller dismissViewControllerAnimated:YES completion:nil]; }