如何在 Payflow Pro XMLPay API 中使用参考交易?

Posted

技术标签:

【中文标题】如何在 Payflow Pro XMLPay API 中使用参考交易?【英文标题】:How to use reference transactions in the Payflow Pro XMLPay API? 【发布时间】:2018-01-20 09:51:58 【问题描述】:

我正在尝试使用Payflow Pro XMLPay API 中的参考交易来制作定期配置文件和一次性交易,但我很难确定应该在哪里包含 ORIGID 参数。我们希望避免在循环配置文件创建或交易创建中包含裸信用卡数据以保持我们的 PCI scope 低 - 在更现代的 API(包括新的PayPal REST API,虽然我们不能使用它,因为它会产生太多的变化)。

基于参考交易创建交易的描述非常清楚for the 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

但是我在弄清楚如何使用 XML API 传递 ORIGID 时遇到了麻烦。我尝试以多种不同的方式包含标签,例如通过将招标部分替换如下(纯属猜测):

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

但我无法绕过要求 ORIGID 或抱怨投标部分无效的错误消息。这两个 API 非常相似,感觉似乎也应该通过 XMLPay 获得支持。也就是说,如果无法通过 XMLPay API 做到这一点,那么使用 NVP API 并不是最大的困难。

另请注意,Secure Token/Transparent Redirect 流程没有帮助,因为它不会隐藏信用卡数据。您仍然需要在创建交易调用中包含裸信用卡数据,这无助于我们缩小 PCI 范围。它似乎允许直接调用 PayPal 而不会在客户端公开您的 API 凭据,但在我们的例子中,即使托管表单也会将该服务置于 PCI 范围内。

【问题讨论】:

【参考方案1】:

因此,据我所知,XMLPay 文档中没有记录,但幸运的是,它正在 the ActiveMerchant codebase 中完成。

您可以像这样添加一个 ExtData 标签,而不是在 Tender 部分中包含信用卡数据:

<Tender>
  <Card>
    <ExtData Name='ORIGID' Value='XYZ123' />
  </Card>
</Tender>

【讨论】:

以上是关于如何在 Payflow Pro XMLPay API 中使用参考交易?的主要内容,如果未能解决你的问题,请参考以下文章

PayPal Payflow Pro 错误

PayPal Payflow Pro 最近的交易

php [PayPal Pro Payflow]更改PayPal Pro Payflow中的信用卡图标

使用 Payflow Pro 重复收费

IPN 在 payflow pro 中可用吗?

使用 Paypal Payflow Pro 进行快速结帐 - 托管页面