Если вы пытаетесь использовать размещенные формы Accept для создания подписки, вы на самом деле не хотите Не используйте размещенную платежную страницу, описанную здесь .
. Правильный рабочий процесс, с помощью API, сделать запрос на профиль клиента: createCustomerProfileRequest
. Все, что вам нужно, это их адрес электронной почты.
После получения идентификатора профиля из этого звонка вы делаете запрос на токен для принятого хоста Форма добавления профиля . Документация для этой формы и других здесь . Я даже не осознавал, что эти формы существуют. Их трудно найти в Google, даже если вы знаете, что ищете.
Вам нужен идентификатор профиля клиента, чтобы получить токен для формы "Добавить профиль оплаты".
You обработайте ответ на эту форму на стороне клиента, так как вы получаете ответ со страницы IFrameCommunicator, которую вы настроили (она работает так же для формы оплаты или этих форм типа профиля клиента). Вот пример .
Затем я вызвал серверный код для создания подписки с API - я передаю ему идентификатор профиля клиента, потому что, честно говоря, я не знаю, возвращает ли форма новый идентификатор платежного профиля. Если у вас есть идентификатор профиля клиента, вы можете получить любые существующие профили оплаты. Поэтому, используя только идентификатор профиля клиента, я звоню, чтобы получить идентификатор профиля оплаты - getCustomerProfileRequest
. Этот звонок возвращает все виды вещей, включая платежные профили. Я просто беру первый. Теперь, используя идентификатор профиля клиента и идентификатор профиля платежа, я могу создать подписку - ARBCreateSubscriptionRequest
. Существуют примеры, которые помогут вам правильно оформить подписку.
Последнее замечание: если вы тестируете это в песочнице, вам потребуется 20 секундная задержка между получением идентификатора профиля оплаты и получением подписки. используя API. Песочница не имеет ресурсов для обработки этих транзакций в режиме реального времени. Понимание этого стоило мне нескольких часов. Вы можете прочитать этот пост, чтобы подтвердить, и хотя он старше, это все еще верно:
https://community.developer.authorize.net/t5/Integration-and-Testing/E00040-when-Creating-Subscription-from-Customer-Profile/m-p/59597#M34176