PayPal Express Checkout呼叫不会在布局C中生成BAID

问题描述 投票:0回答:1

对于他们的网络订阅服务,我的客户完全订阅了Paypal Payments Pro(a.k.a.Payflow),并且还订阅了Recurring Billing插件。

我已经能够使用信用卡设置定期结算没有问题。但是,我对PayPal Express结账的重复计费感到困惑。

我遇到的问题是在Payflow的“布局C”的背景下,将PayPal Express Checkout和托管信用卡结账并排整合。我似乎没有办法为每种布局的两种不同的付款方式(投标)提供不同的信息。

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

  • PayPal Pro / Payflow文档:开发人员指南
  • PayPal Pro / Payflow文档:快速结账
  • PayPal Pro / Payflow文档:定期计费快递
  • 结帐付款流程(PDF上次更新时间:2013年6月)

我已经仔细阅读了php API库,但找不到引用。那里有人可能会指点我吗?

当我使用安全令牌并生成带有布局C的iframe时,该布局会自动生成一个双层堆栈,其中1.顶部是PayPal Express Checkout,底部是2。信用卡签出。问题仍然是两个独立的组件似乎需要不同的cURL调用(具有不同的NVP),我知道无法在布局中提供对表单的单独调用。

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

为了让您更好地了解我当前正在尝试的内容,以下是这些细节:我尝试假设使用Layout C自动初始化BAID。这似乎是一个很好的假设,因为授权确实在POST变量中返回了一个TOKEN。但是,使用此标记会返回错误结果:

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 protected]
&FIRSTNAME=namelikeBob
&LASTNAME=namelikeDobbs

这适用于:

  • 在布局C中创建表单,
  • 点击“Check with PayPal”按钮,
  • 成功登录PayPal,
  • 确认金额并点击“立即付款”,然后
  • 要返回我的客户网站,以便设置定期结算系统的第二步(无论是结算资料还是BAID /协议)。

第二步:我将当前授权转换为定期付款的当前策略(失败)是分析PayPal发送回成功页面的POST中的TENDER值。然后,我会以不同的方式设置定期付款,具体取决于该值是“C”还是“P”。

我使用这些NVP成功设置了信用卡(TENDER = C)定期付款资料:

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

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

php paypal express-checkout recurring-billing
1个回答
1
投票

你有没有尝试过实际放置:

&BILLINGTYPE=MerchantInitiatedBilling
&BA_DESC=ADescriptionIsRequired

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

您可以尝试的另一件事可能会产生影响,包括,作为一个实际的NVP参数:

&PAYPAL-NVP=Y

以前的做法是告诉Payflow将任何额外的参数(甚至是未识别的参数)转发到PayPal,并从PayPal提供完整的响应。

© www.soinside.com 2019 - 2024. All rights reserved.