Статьи

Интеграция вашего iOS-приложения с Apple Pay

Вчера Apple выпустила iOS версии 8.1, а   вместе с ней и Apple Pay . Apple Pay — это их версия платежной системы NFC, которая в ближайшем будущем будет поддерживаться десятками тысяч торговых точек. Несмотря на то, что технология  не является новым прорывом , она наверняка подтолкнет многие компании и ритейлеров к поддержке этой формы оплаты и станет  успешным предприятием для Apple .

Apple Pay также предоставляет разработчикам новую возможность для обработки платежей, и пользователи будут требовать ее, поскольку авторизация и завершение выполняются так же легко, как прикосновение пальца. Так как же добавить Apple Pay в свое приложение?

Настройте Apple Pay в своем приложении

Снимок экрана 2014-10-21 в 1.31.40 вечера

XCode 6.1 упрощает настройку Apple Pay. Начните с изменения цели и включите Apple Pay. Это автоматически позаботится о необходимом выделении ресурсов, добавит файл с правами и настроит его, а также изменит или создаст ваш идентификатор приложения.

screen1

Вы можете заметить, что нет доступных торговых идентификаторов. Нам нужно создать один, чтобы двигаться дальше. Начните с посещения  этой страницы  на портале Apple для разработчиков в разделе «  Идентификаторы»> «Идентификаторы продавцов» .

Следуйте инструкциям, чтобы создать идентификатор продавца и зарегистрировать его.

screen2

Теперь нам нужно добавить запрос на подпись сертификата к идентификатору продавца. Это добавит безопасность, которая будет шифровать токены оплаты. Для этого перейдите к своему идентификатору продавца и нажмите кнопку «Изменить», чтобы изменить его.

SCREEN3

Теперь вам нужно создать сертификат. Нажмите кнопку и следуйте инструкциям Apple.

screen4

Теперь, когда идентификатор продавца настроен, вы можете вернуться в XCode и обновить идентификаторы продавца. Вы должны увидеть, что вновь созданный ID появится в списке! Идите вперед и выберите его, прежде чем двигаться дальше.

screen5

Написать код

Мы предоставили пример проекта в GitHub, который вы можете найти здесь:  cjbeauchamp / ApplePayDemo . Мы удалили Права и конфигурацию приложения, поэтому обязательно добавьте это в — но код там доступен полностью. Мы обсудим несколько основных моментов ниже.

Настройка

Apple Pay использует инфраструктуру PassKit, поэтому вам нужно обязательно включить это в свой проект и импортировать в необходимые файлы.

#import <PassKit/PassKit.h>

Вы также захотите получать обратные вызовы, когда Apple Pay обрабатывает информацию, поэтому обязательно добавьте делегат в класс получения:

@interface ViewController : UIViewController
<PKPaymentAuthorizationViewControllerDelegate>

Создать запрос на оплату

Вы обязательно должны проверить, будет ли устройство обрабатывать платежи, что вы можете сделать с кодом здесь:

if([PKPaymentAuthorizationViewController canMakePayments]) { ... }

Внутри этого блока вы можете создать запрос на оплату, используя класс PKPayment. При необходимости измените эту информацию (убедитесь, что ваш `merchantIdentifier` соответствует тому, который вы создали на предыдущем шаге!).

PKPaymentRequest *request = [[PKPaymentRequest alloc] init];
request.countryCode = @"US";
request.currencyCode = @"USD";
request.supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa];
request.merchantCapabilities = PKMerchantCapabilityEMV;
request.merchantIdentifier = @"merchant.com.myMerchantID";

Добавить товары к оплате

Вы можете создавать элементы для отображения, используя `PKPaymentSummaryItem`. Этот объект представляет предмет и цену. Последний объект в массиве должен быть общим значением.

PKPaymentSummaryItem *widget1 = [PKPaymentSummaryItem summaryItemWithLabel:@"Widget 1" amount:[NSDecimalNumber decimalNumberWithString:@"0.99"]];

PKPaymentSummaryItem *widget2 = [PKPaymentSummaryItem summaryItemWithLabel:@"Widget 2" amount:[NSDecimalNumber decimalNumberWithString:@"1.00"]];

PKPaymentSummaryItem *total = [PKPaymentSummaryItem summaryItemWithLabel:@"Grand Total" amount:[NSDecimalNumber decimalNumberWithString:@"1.99"]];

request.paymentSummaryItems = @[widget1, widget2, total];

Представить вид авторизации

Наконец, представьте контроллер представления, предоставляемый платформой PassKit. Это позаботится об авторизации.

PKPaymentAuthorizationViewController *paymentPane = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];
paymentPane.delegate = self;
[self presentViewController:paymentPane animated:TRUE completion:nil];

Реализуйте методы делегата

Эти необходимые методы делегата вызываются при успешной авторизации и завершении авторизации. Вам решать отклонить контроллер представления и сообщить пользователю, успешна ли авторизация. Подпись метода выглядит так:

- (void)paymentAuthorizationViewController:didAuthorizePayment:completion:
- (void)paymentAuthorizationViewControllerDidFinish:

Авторизация оплаты

После того, как Apple Pay авторизует их оплату, разработчик должен завершить транзакцию. Это можно сделать с помощью метода делегата didAuthorizePayment, где вы сделаете серверный вызов для загрузки токена оплаты и информации для окончательной обработки. После завершения этого серверного вызова вы должны вызвать метод `complete`, предоставленный в качестве параметра метода, с флагом успеха или сбоя. Пример этого можно найти в  примере кода .

Мониторинг и оптимизация транзакций

Apple Pay является отличным дополнением к существующим процессам оформления заказов и наверняка порадует пользователей ( надеюсь ). Несмотря на то, что Apple Pay делает обработку платежей еще проще, все еще есть много движущихся частей, производительность которых напрямую связана с доходами вашего приложения.

Мониторинг транзакций

Новое управление транзакциями Crittercism   — отличный способ отслеживать эти транзакции, чтобы убедиться, что все работает так, как должно. Если конечная точка API или служба работают медленно, если пользователь решает отменить транзакцию или происходит сбой приложения — вам нужно знать, чтобы поток можно было оптимизировать и доход продолжал расти!

Добавьте его в свой код Apple Pay

Перво- наперво , вам понадобится  аккаунт Crittercism . Вы можете следовать инструкциям, чтобы установить  библиотеку  за считанные минуты.

С помощью всего лишь  нескольких строк кода вы можете добавить это отслеживание в свое приложение. В нашем примере вы можете увидеть это в контроллере представления кода:

[Crittercism beginTransaction:@"checkout"];

.. do transaction stuff

if(successful) [Crittercism endTransaction:@"checkout"];
else [Crittercism failTransaction:@"checkout"];

Это отличный способ убедиться, что транзакции выполняются должным образом, а если нет, подробно расскажите, почему они терпят неудачу. Обязательно для любого кассового потока!

Заворачивать

Надеюсь, это введение поможет вам начать работу с Apple Pay. Обязательно прочитайте руководства Apple и документацию о том, как интегрироваться с вашими провайдерами, а также рекомендации по пользовательскому интерфейсу. Вы можете найти эти документы здесь:  https://developer.apple.com/apple-pay/ .

И не забудьте проверить  Crittercism,  чтобы помочь вам отслеживать сбои и отслеживать транзакции!