贝宝参考交易结算协议

问题描述:

我们需要通过PayPal进行参考交易,每月向客户收取不同金额的账单。 例如第一个月为$ 30第二个月可能是$ 35第三个月可能是$ 25等贝宝参考交易结算协议

到目前为止,这似乎是最好的办法:https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECReferenceTxns/

我使用贝宝推荐的SDK从这个页面:https://developer.paypal.com/docs/classic/api/nvpsoap-sdks/ 和使用ExpressCheckout方法。 (贝宝/作曲家通过安装商户-SDK-PHP)

我们有一个免费的贝宝企业账户。

通过沙盒测试我能:

  1. 获得令牌(SetExpressCheckout) - 分类 - >数码,billingAgreement,类型=销售
  2. 着客户的沙盒登录PayPal
  3. 确认付款
  4. 重定向到我们的系统中(RETURNURL)
  5. 处理付款(GetExpressTocket + doExpressCheckout)

问题:

  • 是否贝宝企业账户不需要任何开关/状态/升级对现场环境中启用参考交易?

  • 您如何设置0美元的结算协议在本月晚些时候开出金额?当在步骤1中传递一个0量以上,并显示

    错误

项目名称,如果 提供项目类别是必需的量和数量,错误码10003

这矛盾的文档https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECReferenceTxns/#setting-up-a-billing-agreement-before-payment其中规定将金额设置为0 ...? UPDATE:删除设置$ itemDetails-> ItemCategory ='Digital';解决了$ 0金额问题。虽然我已经通过了BillingAgreement数据

//结算协议细节 $ billingAgreementDetails =新BillingAgreementDetailsType( 'MerchantInitiatedBillingSingleAgreement')甚至没有返回

  • 结算ID; $ billingAgreementDetails-> BillingAgreementDescription = $ billingAgreementTxt; $ setECReqDetails-> BillingAgreementDetails = array($ billingAgreementDetails);

我知道这篇文章中有几个问题,但我相信它们都与PayPal中“参考交易”的范围有关。 我正在寻找关于方法和文档中矛盾解释的建议。(或者,如果我做错了,然后高兴地听到它)

+0

在与Paypal支持交谈后,他们表示Sandbox是越野车,而且参考交易在Sandbox上不起作用......不知道该怎么想,并会继续尝试使用真实账户。 –

要回答你的问题:

1)是否贝宝企业账户不需要任何开关/状态/升级到在现场能参考交易环境?

如果您在致电参考交易时收到错误消息,可能是在您的帐户中关闭了该设置。您需要联系PayPal业务支持团队才能启用它。

2)不返回帐单ID。

要设置帐单协议,您需要在SetExpressCheckout请求中传递paymentaction = authorization。如果您将paymentaction设置为出售,您将无法设置结算协议。

+0

谢谢你的回答。第1点我意识到一旦在真实账户(getToken ...)上运行测试,它会返回类似的消息。基本上联系贝宝以激活参考交易。 - 2.当我回到这个问题时,我会测试账单ID paymentaction =授权。感谢您的意见。 –

+0

更新:使用PayPal SDK(PHP通过作曲家)(merchant-sdk-php,sdk-core-php) - 我使用CreateBillingAgreement()返回一个BillingAgreementID。 No in sandbox still still get:[LongMessage] =>预先批准的付款未启用。 ...沙箱中的设置被激活,所以支持PayPal ..有趣的乐趣。 –