PayPal快速结帐呼叫不会在布局 C 中生成 BAID



对于他们的网络订阅服务,我的客户完全订阅了PayPal Payments Pro(又名Payflow),并且还订阅了定期计费附加组件。

我已经能够毫无问题地使用信用卡设置定期计费。但是,我对定期计费的PayPal Express结帐感到困惑。

我遇到的问题是在Payflow的"布局C"上下文中PayPal快速结帐和托管信用卡结帐的并行集成。我似乎没有办法为布局的两种不同付款方式(招标)中的每一种提供不同的信息。

我已经非常彻底地反复阅读了文档。不过,我似乎错过了一些东西。

  • PayPal专业版/工资流文档:开发人员指南
  • PayPal专业版/工资流文档:快速结账
  • PayPal专业版/工资单文档:定期计费快递
  • 付款流程结账 (PDF 最后更新时间:2013 年 6 月)

我已经仔细阅读了php API库,但找不到参考。那里有什么东西可以有人指出我吗?

当我使用安全令牌并使用布局 C 生成 iframe 时,该布局会自动生成一个包含 1 的两层堆栈。PayPal 顶部和 2 的快速结账。底部有信用卡结账。问题仍然存在,两个单独的组件似乎需要不同的 cURL 调用(使用不同的 NVP),并且我不知道无法在布局中为表单提供单独的调用。

我似乎缺少一个更高层次的概念。(请记住,我 - 大致 - 理解爱因斯坦的东西。这让我更加沮丧,因为我无法理解PayPal的东西!

为了让您更好地了解我目前正在尝试的内容,以下是这些详细信息: 我尝试假设使用布局 C 自动初始化 BAID。这似乎是一个很好的假设,因为授权确实在 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/协议)的第二步。

第二步:我当前将此授权转换为定期付款的策略(失败)是分析PayPal发送回我的成功页面的 POST 中的 TENDER 值。然后,我根据该值是"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

然而,PayPal(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

这里似乎有很多细节,但如果我遗漏了任何内容,请告诉我,我会立即提供信息!

您是否尝试过实际放置:

&BILLINGTYPE=MerchantInitiatedBilling
&BA_DESC=ADescriptionIsRequired

在创建安全令牌的第一步?

您可以尝试的另一件可能会有所作为的事情是包含作为实际的 NVP 参数:

&PAYPAL-NVP=Y

这曾经是告诉Payflow将任何额外的参数(甚至是无法识别的参数)转发到PayPal,并给出PayPal的完整响应。

最新更新