Как использовать эталонные транзакции в Payflow Pro XMLPay API?

Я пытаюсь использовать эталонные транзакции в Payflow Pro XMLPay API для создания повторяющихся профилей и разовых транзакций, но мне трудно понять, где следует включать параметр ORIGID. Мы хотели бы избежать включения голых данных кредитной карты в повторяющееся создание профиля или создание транзакции, чтобы сохранить нашу область PCI низкий — эффективное использование эталонной транзакции вместо того, что было бы токеном кредитной карты в более современном API (включая новый PayPal REST API, хотя мы не можем его использовать, потому что это создаст слишком много изменений).

Создание транзакций на основе эталонных транзакций довольно четко описано для NVP API (ищите «Преобразование существующей транзакции в профиль»):

TRXTYPE=R&TENDER=C&PARTNER=PayPal&VENDOR=Acme&USER=Acme&PWD=a1b2c3d4&ACTION=A&PROFILENAME=RegularSubscription&ORIGID=XYZ123&START=12012013&PAYPERIOD=WEEK&TERM=12&OPTIONALTRX=S&OPTIONALTRXAMT=2.00&COMMENT1=First-time customer&AMT=42.00

Соответствующий бит находится ближе к середине, где вы передаете ORIGID=XYZ123.

Но у меня возникли проблемы с выяснением того, как передать ORIGID с помощью XML API. Я пробовал включать тег несколькими способами, например. заменив тендерную часть следующим образом (чистые догадки):

<Tender>
  <Card>
    <OrigId>XYZ123</OrigId>
  </Card>
</Tender>

Но мне не удалось обойти сообщения об ошибках, которые запрашивают ORIGID или жалуются на недопустимый раздел тендера. Эти два API достаточно похожи, поэтому кажется поддержка через XMLPay. Тем не менее, использование API NVP вместо этого не будет самой большой трудностью, если просто не будет способа сделать это через API XMLPay.

Также обратите внимание, что Secure Token/Transparent Redirect flow бесполезен, так как не скрывает данные кредитной карты. Вам по-прежнему нужно будет включать голые данные кредитной карты в вызов создания транзакции, и это не поможет нам уменьшить область действия PCI. Похоже, что это позволяет совершать вызовы непосредственно в PayPal, не раскрывая ваши учетные данные API на стороне клиента, но в нашем случае даже размещение формы помещает эту службу в область действия PCI.


person Hannele    schedule 11.08.2017    source источник


Ответы (1)


Насколько я могу судить, это не задокументировано в документации XMLPay, но, к счастью, это делается в кодовая база ActiveMerchant.

Вместо включения данных кредитной карты в раздел Tender вы добавляете тег ExtData следующим образом:

<Tender>
  <Card>
    <ExtData Name='ORIGID' Value='XYZ123' />
  </Card>
</Tender>
person Hannele    schedule 11.08.2017