При вызове PayPal Express Checkout не отображается BAID в формате C - PullRequest
0 голосов
/ 12 апреля 2019

Для их услуги веб-подписки мой клиент полностью подписан на Paypal Payments Pro (a.k.a. Payflow), а также подписался на дополнение Recurring Billing.

Мне удалось без проблем настроить регулярное выставление счетов с помощью кредитных карт. Тем не менее, я озадачен проверкой PayPal Express для повторного выставления счетов.

Проблема, с которой я сталкиваюсь, заключается в параллельной интеграции PayPal Express Checkout и Hosted Credit Card Checkout в контексте «Макета C» Payflow. У меня, похоже, нет средство для предоставления различной информации для каждого из двух различных способов оплаты (тендеров).

Я прочитал документацию довольно тщательно и неоднократно. Кажется, я что-то пропустил.

  • Документы PayPal Pro / Payflow: Руководство разработчика
  • Документы PayPal Pro / Payflow: экспресс-оплата
  • Документы PayPal Pro / Payflow: регулярный биллинг Экспресс
  • Checkout for Payflow (PDF Последнее обновление: июнь 2013 г.)

Я просмотрел библиотеку php API и не могу найти ссылку. Есть ли что-то, на что кто-то может указать мне?

Когда я использую безопасный токен и создаю iframe с макетом C, этот макет автоматически создает двухуровневый стек с 1. PayPal Express Checkout вверху и 2. checkout кредитной картой внизу. Проблема остается в том, что двум отдельным компонентам, похоже, требуются разные вызовы cURL (с разными NVP), и я не знаю способа обеспечить отдельные вызовы для формы в макете.

Кажется, что существует концепция более высокого уровня, которую мне не хватает. (Имейте в виду, я - примерно - понимаю вещи Эйнштейна. Это делает меня еще более расстроенным, что я не могу понять вещи PayPal!)

Чтобы дать вам лучшее представление о том, что я сейчас пытаюсь, вот эти детали: Я пытался предположить, что с помощью Layout C автоматически инициализируется BAID. Это казалось хорошим предположением, потому что авторизация действительно возвращала TOKEN в переменных POST. Однако использование этого токена возвращает результат ошибки:

RESULT=12&PNREF=BJPXXX8333D4&RESPMSG=Declined: 11455-Buyer did not accept billing agreement

Вот что я сейчас делаю:

Первый шаг: чтобы получить форму оплаты в «Схеме C» с обоими способами оплаты (Экспресс-заказ и кредитная карта), я отправляю эти NVP и ТОЛЬКО эти NVP:

USER=[user]
&VENDOR=[vendor]
&PARTNER=PayPalCA
&PWD=[password]
&CREATESECURETOKEN=Y
&SECURETOKENID=randomlygenerated
&TRXTYPE=A
&AMT=8.95
&CURRENCY=USD
&CSCREQUIRED=TRUE
&EMAIL=buyersemail@email.com
&FIRSTNAME=namelikeBob
&LASTNAME=namelikeDobbs

Это работает для:

  • создать форму в макете C,
  • нажмите кнопку «Оформить заказ через PayPal»,
  • успешно войдите в систему PayPal,
  • подтвердите сумму и нажмите «Оплатить сейчас», а
  • должен быть возвращен на сайт моего клиента для второго шага по настройке периодической биллинговой системы (будь то профиль биллинга или BAID / соглашение).

Второй шаг. Моя текущая стратегия (которая не работает) для преобразования этой авторизации в регулярный платеж состоит в том, чтобы проанализировать значение TENDER из POST, который PayPal отправляет обратно на мою страницу успеха. Затем я настраиваю периодический платеж по-разному, в зависимости от того, является ли это значение «C» или «P».

Мне удалось настроить профили повторяющихся платежей с помощью кредитной карты (TENDER = C), используя следующие NVP:

USER=[user]
&VENDOR=[vendor]
&PARTNER=PayPalCA
&PWD=[password]
&TRXTYPE=R
&ACTION=A
&ORIGID=fromPayPalsPOSTedPNREF
&START=aworkingdate
&TENDER=C
&PROFILENAME=Monthly Subscription
&PAYPERIOD=MONT
&TERM=0 // continue all subscriptions until the client deactivates  
&AMT=8.95
&CURRENCY=USD

Однако PayDal (TENDER = P) BAID не выполняется. Опять же, эти NVP не могут быть проблемой. Возможно, я не нашел способа отправить BILLINGTYPE=MerchantInitiatedBilling в предыдущем запросе:

USER=[user]
&VENDOR=[vendor]
&PARTNER=PayPalCA
&PWD=[password]
&TRXTYPE=A
&ACTION=X
&START=aworkingdate
&TENDER=P
&TOKEN=fromPayPalsPOSTedTOKEN
&PAYPERIOD=MONT
&TERM=0 // continue all subscriptions until the client deactivates  
&AMT=8.95
&CURRENCY=USD

Кажется, здесь много подробностей, но если я что-то пропустил, пожалуйста, дайте мне знать, и я предоставлю информацию немедленно!

1 Ответ

1 голос
/ 13 апреля 2019

Вы пытались на самом деле поместить:

&BILLINGTYPE=MerchantInitiatedBilling
&BA_DESC=ADescriptionIsRequired

на первом шаге, который создает безопасный токен?

Еще одна вещь, которую вы можете попробовать, которая может иметь значение, - это включить в качествефактический параметр NVP:

&PAYPAL-NVP=Y

То, что раньше использовалось, - это сказать Payflow, чтобы он перенаправлял любые дополнительные (даже нераспознанные) параметры в PayPal и давал полный ответ от PayPal.

...