Как использовать ссылочные транзакции в Payflow Pro XMLPay API?
Я пытаюсь использовать ссылочные транзакции в API-интерфейсе Payflow Pro XMLPay для создания повторяющихся профилей и разовых транзакций, но мне сложно определить, где мне следует включить параметр ORIGID. Мы хотели бы не включать пустые данные кредитной карты в повторяющееся создание профиля или создание транзакции, чтобы поддерживать низкую область действия PCI - эффективно использовать эталонную транзакцию вместо того, что было бы токеном кредитной карты в более современном API (включая новый API PayPal REST, хотя мы не можем использовать его, потому что это приведет к слишком большому количеству изменений).
Создание транзакций на основе ссылочных транзакций довольно подробно описано для API NVP (поиск "Преобразование существующей транзакции в профиль"):
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 бесполезен, так как он не скрывает данные кредитной карты. Вам все равно нужно будет включить в вызов для создания транзакции пустые данные кредитной карты, и это не поможет нам сократить объем PCI. Похоже, что он позволяет совершать вызовы напрямую через PayPal, не раскрывая ваши учетные данные API на стороне клиента, но в нашем случае даже размещение формы переводит эту службу в область действия PCI.
1 ответ
Так что это не документировано в документации XMLPay, насколько я могу судить, но, к счастью, это делается в базе кода ActiveMerchant.
Вместо того, чтобы включать данные кредитной карты в раздел "Тендер", вы добавляете тег ExtData следующим образом:
<Tender>
<Card>
<ExtData Name='ORIGID' Value='XYZ123' />
</Card>
</Tender>