对于他们的Web订阅服务,我的客户已完全订阅Paypal Payments Pro(又称Payflow),并且还订阅了“定期结算”附加组件。
我已经可以使用信用卡设置定期结算了。但是,我对PayPal Express结帐的重复计费感到困惑。
我遇到的问题是在Payflow的“布局C”的背景下,PayPal Express Checkout和托管信用卡结帐的并排集成。我似乎没有可以为Layout的两种不同付款方式(投标)分别提供不同的信息。
我已经很反复地仔细阅读了文档。我似乎还是错过了一些东西。
我仔细阅读了php API库,但找不到参考资料。有人可能会指向我吗?
当我使用安全令牌并使用布局C生成iframe时,该布局会自动生成一个两层的堆栈,其顶部为1. PayPal Express Checkout,底部为2. credit card checkout。问题仍然在于,这两个单独的组件似乎需要不同的cURL调用(具有不同的NVP),而且我不知道无法对布局中的表单提供单独的调用。
我似乎缺少一个更高层次的概念。 (请记住,我大概了解爱因斯坦的东西。这让我更加沮丧,因为我无法理解贝宝的东西!)
为了让您更好地了解我目前正在尝试什么,以下是这些详细信息: 我尝试使用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=buyersemail@email.com
&FIRSTNAME=namelikeBob
&LASTNAME=namelikeDobbs
这适用于:
第二步:我目前用于将此授权转换为重复付款的策略(失败)是分析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
这里似乎有很多细节,但是如果我遗漏了什么,请告诉我,我将提供信息提示!
答案 0 :(得分:1)
您是否尝试过实际放置:
&BILLINGTYPE=MerchantInitiatedBilling
&BA_DESC=ADescriptionIsRequired
创建安全令牌的第一步?
您可以尝试做的另一件事可能会有所作为,包括:作为实际的NVP参数:
&PAYPAL-NVP=Y
这通常是告诉Payflow将任何额外的参数(甚至是无法识别的参数)转发到PayPal,并给出PayPal的完整响应。