Paypal Recurring Payment API - 工作流程

时间:2014-11-04 21:26:57

标签: java api paypal

我正在试图弄清楚如何使用paypal API来实现定期付款。我正在遵循本指南:

https://devtools-paypal.com/guide/recurring_payment_ec?interactive=OFF&env=sandbox

但我不明白。这怎么可行?在步骤1中,构建付款详细信息但不填充诸如间隔或付款值之类的值。然后我得到一个令牌,用户必须在步骤2中确认付款。

他确认付款后。我在步骤3中设置了间隔中的值和付款?这对我来说真的没有意义。什么阻止我在第3步收取任何我想要的金额?

1 个答案:

答案 0 :(得分:1)

迟到总比没有好?

我第一次设置定期结算时遇到的主要陷阱是经常结算是一项付费的“附加”服务,而商家帐户持有人必须在其PayPal上对其进行初始化。目前,贝宝(PayPal)引发此错误的方式是通过其通用的RESULT=1响应;但是,该消息很关键。 RESPMSG=User authentication failed: Recurring Billing"几乎可以肯定意味着尚未在商家帐户上设置“定期结算”。

一旦在帐户上设置了“定期结算”,则应该执行以下步骤。

  1. 通过以下方式致电PayPal Pro(PayFlowPro等)iFrame:
    'USER'                  => [[[Payflow User]]],
    'VENDOR'                => [[[Payflow Vendor]]],
    'PARTNER'               => [[[Payflow Partner]]],
    'PWD'                   => [[[Payflow Password]]],
    'TRXTYPE'               => 'A', // to authorize a billing profile
    'TENDER'                => 'C', // even if the user uses PayPal to pay
    'BILLINGTYPE'           => 'MerchantInitiatedBilling',
    'CURRENCY'              => 'USD',
    'RETURNURL'             => [[[Return URL]]],
    'CANCELURL'             => [[[Cancel URL]]],
    'ERRORURL'              => [[[Cancel URL]]],
    'BA_DESC'               => 'A Fitting Description of the Profile',
    'CREATESECURETOKEN'     => 'Y',
    'SECURETOKENID'         => [[[Your generated ID]]],
    'AMT'                   => '5.49' // a string, can not be zero

注意:BILLINGTYPEBA_DESC帮助您创建 PayPal计费协议。尽管PayPal具有零身份验证功能,但您不得使用0.00作为身份验证金额。

订阅者成功完成PayPal付款表格后,该信息便会发布到您的RETURNURL中。解析并使用此POST数据,并执行以下PayPal API调用之一来创建定期结算配置文件。

如果订户使用PayPal设置其帐户,则POST将包含名称/值BAID=########################。您应该使用BAID(“计费协议ID”)作为参考来创建 PayPal计费协议

    'USER'                  => [[[Payflow User]]],
    'VENDOR'                => [[[Payflow Vendor]]],
    'PARTNER'               => [[[Payflow Partner]]],
    'PWD'                   => [[[Payflow Password]]],
    'TRXTYPE'               => 'R', // recurring billing profile
    'ACTION'                => 'A', // add/create recurring billing profile
    'TENDER'                => 'P', // PayPal
    'PROFILENAME'           => 'A name for your subscription',
    'BAID'                  => '##################', // The BAID POSTed from PayPal
    'START'                 => '190721', // a starting date in mdY format
    'PAYPERIOD'             => 'MONT', // or YEAR or etc, see manual
    'TERM'                  => '0', // # of payments (0 is until subscriber cancels)
    'AMT'                   => '5.49' // same amount as your auth in previous step

如果订户使用信用卡来设置其帐户,则POST将不包含名称/值BAID,而您应将循环计费配置文件创建为标准的循环信用卡配置文件:

    'USER'                  => [[[Payflow User]]],
    'VENDOR'                => [[[Payflow Vendor]]],
    'PARTNER'               => [[[Payflow Partner]]],
    'PWD'                   => [[[Payflow Password]]],
    'TRXTYPE'               => 'R', // recurring billing profile
    'ACTION'                => 'A', // add/create recurring billing profile
    'TENDER'                => 'C', // credit card
    'PROFILENAME'           => 'A name for your subscription',
    'ORIGID'                => 'PN##########', // PNREF value POSTed from PayPal
    'START'                 => '190721', // a starting date in mdY format
    'PAYPERIOD'             => 'MONT', // or YEAR or etc, see manual
    'TERM'                  => '0', // # of payments (0 is until subscriber cancels)
    'AMT'                   => '5.49' // same amount as your auth in previous step

请注意,PayPal发送给我的最后一个相关文档是2013年以来的,而且已经过时了。它包含了一个繁琐的四步过程,只是没有用。希望您在阅读本文时已对此进行了更新。

希望这可以帮助您。如果您有任何问题,请告诉我。