Вчера Apple выпустила iOS версии 8.1, а вместе с ней и Apple Pay . Apple Pay — это их версия платежной системы NFC, которая в ближайшем будущем будет поддерживаться десятками тысяч торговых точек. Несмотря на то, что технология не является новым прорывом , она наверняка подтолкнет многие компании и ритейлеров к поддержке этой формы оплаты и станет успешным предприятием для Apple .
Apple Pay также предоставляет разработчикам новую возможность для обработки платежей, и пользователи будут требовать ее, поскольку авторизация и завершение выполняются так же легко, как прикосновение пальца. Так как же добавить Apple Pay в свое приложение?
Настройте Apple Pay в своем приложении
XCode 6.1 упрощает настройку Apple Pay. Начните с изменения цели и включите Apple Pay. Это автоматически позаботится о необходимом выделении ресурсов, добавит файл с правами и настроит его, а также изменит или создаст ваш идентификатор приложения.
Вы можете заметить, что нет доступных торговых идентификаторов. Нам нужно создать один, чтобы двигаться дальше. Начните с посещения этой страницы на портале Apple для разработчиков в разделе « Идентификаторы»> «Идентификаторы продавцов» .
Следуйте инструкциям, чтобы создать идентификатор продавца и зарегистрировать его.
Теперь нам нужно добавить запрос на подпись сертификата к идентификатору продавца. Это добавит безопасность, которая будет шифровать токены оплаты. Для этого перейдите к своему идентификатору продавца и нажмите кнопку «Изменить», чтобы изменить его.
Теперь вам нужно создать сертификат. Нажмите кнопку и следуйте инструкциям Apple.
Теперь, когда идентификатор продавца настроен, вы можете вернуться в XCode и обновить идентификаторы продавца. Вы должны увидеть, что вновь созданный ID появится в списке! Идите вперед и выберите его, прежде чем двигаться дальше.
Написать код
Мы предоставили пример проекта в 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, чтобы помочь вам отслеживать сбои и отслеживать транзакции!