PayPal 使用 Payflow 通过 PayPal 帐户创建定期付款

标签 paypal recurring-billing

我的客户不想处理信用卡数据,因此我实现了 2 个选项,1) 带有托管页面的 PayPal Advanced,以及 2) PayPal Pro 透明重定向。我可以通过

创建定期付款
  1. 获取我的安全 token
  2. 提交交易
  3. 将交易转换为定期计费配置文件

PayPal 要求我为用户提供使用 PayPal 帐户付款的选项,但是当我将该付款转换为 RBP,然后让它创建交易时,交易失败并出现结果 7 - 字段格式错误。我注意到创建的 RBP 没有帐号。

对于选项 1,我认为我运气不好是吗?

对于选项 2,我使用 Payflow.net dll 来处理工作正常的 EC(参见代码示例)。是否有关于如何使用 token 而不是 CC num 或 BAID 创建 RBP 的代码示例?

...
partner = pageSettings.PageSettings["PayPalPartner"];
vendor = pageSettings.PageSettings["PayPalLogin"];
user = pageSettings.PageSettings["PayPalUser"];
pwd = Utilities.DecryptSettingValue(pageSettings.PageSettings["PayPalPassword"])
UserInfo creds = new UserInfo(user, vendor, partner, pwd);
string url = ConfigurationManager.AppSettings.Get("PayflowLive");
PayflowConnectionData connection = new PayflowConnectionData(url);
ECDoRequest doRequest = new ECDoRequest(token, payerID);
PayPalTender tender = new PayPalTender(doRequest);
Invoice inv = new Invoice();
inv.Amt = new Currency(amount, "USD");
inv.Comment1 = fundName;
SaleTransaction trans = new SaleTransaction(creds, connection, inv, tender, PayflowUtility.RequestId);
Response resp = trans.SubmitTransaction();

最佳答案

我没有代码,但我可以指导您如何使用 PayPal 付款创建定期配置文件。它包括四个步骤:

<强>1。调用 SetExpressCheckout API

VENDOR=XXXXXXX&PARTNER=XXXXXXX&USER=XXXXXXXXX&PWD=XXXXXX&TRXTYPE=A&ACTION=S&TENDER=P&RETURNURL=http://return.com&CANCELURL=http://cancel.com&AMT=0.00&BA_DESC=purchase Time magazine&BILLINGTYPE=MerchantInitiatedBilling&PAYMENTTYPE=any&BA_CUSTOM=magazine subscription

NVP Response:
RESULT=0
RESPMSG=Verified
TOKEN=EC-8DA60888D41196708
CORRELATIONID=f4df94a3345b6 

2.使用生成的 token 重定向客户:

https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-8DA60888D41196708

<强>3。买方接受协议(protocol)后,使用 token 获取计费协议(protocol) ID

NVP Request:
VENDOR=XXXXXX&PARTNER=XXXXXXX&USER=XXXXXXXX&PWD=XXXXX&TRXTYPE=A&ACTION=X&TENDER=P&TOKEN=EC-8DA60888D41196708

NVP Response:
RESULT=0
PNREF=B1PP7A2F8154
RESPMSG=Approved
TOKEN=EC-8DA60888D41196708
CORRELATIONID=49d6b0037408
BAID=B-6A290557S1180001J 

<强>4。获取 BAID 后,使用 BAID 调用创建循环计费

NVP Request:
VENDOR=XXXX&PARTNER=XXXX&USER=XXXXXX&PWD=XXXXX&TRXTYPE=R&TENDER=P&ACTION=A&PROFILENAME=RegularSubscription&AMT=4.46&BAID=B-6A290557S1180001J&START=09212014&PAYPERIOD=WEEK&TERM=12&MAXFAILPAYMENTS=1&RETRYNUMDAYS=1&CURRENCY=USD

NVP Response:
RESULT=0
RPREF=R1P57A2F8538
PROFILEID=RT0000000010
RESPMSG=Approved

关于PayPal 使用 Payflow 通过 PayPal 帐户创建定期付款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25938431/

相关文章:

paypal沙箱账户错误状态

Paypal协议(protocol),随时人工支付

php - PayPal不显示订单摘要-Omnipay

Paypal 订阅下一个付款日期

paypal - CreateRecurringPaymentsProfile 给出错误 11502 : Invalid Token

Paypal 定期付款

php - 具有预先批准的限额的订阅和定期付款

Paypal 沙盒信用卡详细信息不起作用

php - Paypal 付款 REST API 更新付款以添加项目