2016-05-31 2 views
0

Как я могу дешифровать PKPaymentToken (токен оплаты Apple Pay), в iOS (используя Objective-C или Swift)?Расшифровать подписчик на оплату платежей Apple с помощью приложения

Рекомендуется расшифровать маркер оплаты на сервере (в идеале, обработчик платежа), но что делать, если я хочу расшифровать данные токена платежа на стороне клиента (конец iOS).

+0

Вы имеете в виду шифрованный компонент 'paymentData'? –

+0

Да, я хочу расшифровать 'paymentData' внутри' PKPaymentToken'. – Mustafa

ответ

5

Не делайте этого. Это ужасная идея. Для дешифрования токена платежа требуется ваш закрытый ключ. Вам нужно будет встроить этот ключ в свое приложение, которое позволит любому принять его и расшифровать ваши платежи. По этой причине вы никогда не должны расшифровывать данные о платежах на устройстве.

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

+0

Не собираюсь делать это в производственной среде. Я просто хочу проверить, КАК мы можем сделать это на стороне клиента. Спасибо за предупреждение. – Mustafa

+0

Процесс дешифрования документирован, поэтому, если вы знакомы с CommonCrypto или OpenSSL, вы сможете его реализовать. Но опять же, не делайте этого на клиенте, даже для тестирования. Это ужасная идея. – lxt

-1

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

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

+1

Это неверно. Процесс публично документирован здесь: https://developer.apple.com/library/ios/documentation/PassKit/Reference/PaymentTokenJSON/PaymentTokenJSON.html - вы можете расшифровать токен и получить токен (который является номером карты) и криптограмма. Затем вы передаете их своему платежному процессору, который запускает их через рельсы 3DS, как вы намекаете. – lxt

+0

См. Http://stackoverflow.com/a/37620790. Существуют преднамеренные причины, по которым это желательно быть безопасным онлайн-решением. –

Смежные вопросы