какие вызовы API необходимы для ExpressCheckout с регулярными платежами

Мой поток звонков выглядит следующим образом:

  • SetExpressCheckout
  • ПолучитьExpressCheckout
  • DoExpressCheckout

Примечание: paymentAction – это продажа для разового платежа и авторизация для рекуррентных платежей.

CreateRecurringProfile с начальной суммой (только для регулярного платежа)

Я узнал что:

Деньги ожидали изъятия.

Профиль также списал деньги на первоначальный взнос.

Когда я пытался захватить деньги, то клиент был списан дважды.

Вопросы:

  1. Пожалуйста, не могли бы вы посоветовать, чего не хватает в моих вызовах API?
  2. Для регулярных платежей, как вы думаете, мне не нужно вызывать API DoExpressCheckout перед вызовом API CreateRecurringPaymentsProfile?
  3. Если вопрос 2 верен, если вызов API CreateRecurringPaymentsProfile был успешным, то есть $createRPProfileResponse->Ack == "SUCCESS", значит ли это, что начальная сумма гарантирована для меня, и я могу разрешить доступ к своим услугам?

person Folarin Musiludeen    schedule 31.10.2012    source источник


Ответы (1)


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

Если проверка предназначена только для регулярного платежа, вам не нужно вызывать DoExpressCheckoutPayment. Вы бы сделали оба вызова (DECP и CRPP) только в ситуации, когда вам нужно было получить единовременный платеж за продукт, который вы отправляли, например, а затем также создать подписку вдобавок к этому. В вашем случае похоже, что вам понадобится только CRPP.

Вам все еще нужно позвонить в SEC и, по желанию, GECD, но вы просто добьете это с помощью CRPP. (Примечание: убедитесь, что вы включили детали соглашения о выставлении счетов в свой запрос SEC. Это распространенная ошибка, которую совершают многие люди, и в итоге они получают ошибку недопустимого токена при вызове CRPP.)

Подтверждение УСПЕХА НЕ означает, что первоначальная сумма была одобрена. Это просто означает, что профиль был успешно создан. Однако в запросе есть параметр FAILEDINITAMTACTION, который вы можете использовать, чтобы указать, хотите ли вы оставить профиль активным или немедленно приостановить его, если первоначальный платеж не прошел. Он принимает следующие значения: ContinueOnFailure / CancelOnFailure.

Однако пусть это вас не смущает. На самом деле статус профиля будет приостановлен, а не отменен, поэтому вы можете просто повторно активировать его после оплаты.

Когда вы создаете свою систему входа для доступа к вашим платным областям вашего сайта, вы можете использовать API GetRecurringPaymentsProfileDetails, чтобы проверить текущий статус профиля и разрешить доступ только в том случае, если он активен.

Надеюсь, это поможет!

person Drew Angell    schedule 13.11.2012
comment
Спасибо, Андрей, все верно. Я обнаружил, что вызов API DoExpressCheckout не требуется для повторного платежа, даже если есть первоначальный платеж. - person Folarin Musiludeen; 28.12.2012
comment
Например, если ваша обычная плата за ваши услуги составляет 10 фунтов стерлингов в месяц, и вы хотите, чтобы ваш клиент имел доступ к вашим услугам в течение десяти дней с начальной суммой 5 фунтов стерлингов. И по прошествии десяти дней вы хотите, чтобы нормальные заряды продолжались. Вам не нужно вызывать API DoExpressCheckout, вы можете просто вызвать SetExpressCheckout и во время вызова API CreateRecurringPaymentsProfile установить начальную сумму на 5 фунтов стерлингов и дату начала профиля на текущую дату плюс десять дней. Первоначальная сумма будет вычтена при создании повторяющегося профиля, а последующие повторяющиеся платежи начнутся через десять дней. - person Folarin Musiludeen; 29.12.2012
comment
Верно ... это почти то, что я объяснил в своем ответе. ;) - person Drew Angell; 29.12.2012