【发布时间】:2017-07-30 09:15:54
【问题描述】:
我们要求通过 PayPal 进行参考交易,以便每月向客户收取不同金额的账单。 例如第一个月是 30 美元,第二个月可能是 35 美元,第三个月可能是 25 美元,等等
到目前为止,这似乎是最好的方法:https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECReferenceTxns/
我正在使用来自此页面的 PayPal 推荐的 SDK:https://developer.paypal.com/docs/classic/api/nvpsoap-sdks/ 并使用 ExpressCheckout 方法。 (paypal/merchant-sdk-php 通过 composer 安装)
我们有一个免费的 PayPal 企业帐户。
通过沙盒测试我能够:
- 获取令牌 (SetExpressCheckout) - category->Digital, billingAgreement, Type=Sale
- 将客户转发到沙盒贝宝登录
- 确认付款
- 重定向回我们的系统 (returnUrl)
- 处理付款(GetExpressTocket + doExpressCheckout)
问题:
PayPal 企业帐户是否需要任何切换/状态/升级才能在实时环境中启用参考交易?
如何设置 0 美元的计费协议以在当月晚些时候开具发票金额?在上述步骤 1 中传递 0 数量并显示错误时
如果商品类别是,则需要商品名称、数量和数量 提供,错误代码 10003
这与文档https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECReferenceTxns/#setting-up-a-billing-agreement-before-payment 相矛盾,其中规定将金额设置为 0...? 更新:删除设置 $itemDetails->ItemCategory = 'Digital';解决了 $0 金额问题。
-
即使我已通过 BillingAgreement 数据,也不会返回帐单 ID
// 计费协议详情 $billingAgreementDetails = new BillingAgreementDetailsType('MerchantInitiatedBillingSingleAgreement'); $billingAgreementDetails->BillingAgreementDescription = $billingAgreementTxt; $setECReqDetails->BillingAgreementDetails = array($billingAgreementDetails);
我知道帖子中有一些问题,但我相信它们都与 PayPal 中的“参考交易”的范围有关。 我正在寻找有关文档中矛盾的方法和解释的建议。 (或者如果我做错了什么,那么很高兴听到它)
【问题讨论】:
-
在与 Paypal 支持人员交谈后.. 他们说沙盒有问题,参考交易在沙盒上不起作用……不知道该怎么想,会继续尝试真实账户。
标签: paypal billing express-checkout