2014-10-19 98 views
1

我正确设置了我的网站,以支持使用贝宝循环结算与payum bundle帐户年度订阅付款。贝宝快速结帐 - 循环结算 - 检查经常性状态

这些都是我的网站发送给贝宝在参数上重复请求

$recurringPaymentDetails['TOKEN'] = $agreementDetails['TOKEN']; 
    $recurringPaymentDetails['DESC'] = 'annual account subscription'; 
    $recurringPaymentDetails['EMAIL'] = $agreementDetails['EMAIL']; 
    $recurringPaymentDetails['AMT'] = $this->view['user']->money; 
    $recurringPaymentDetails['CURRENCYCODE'] = 'EUR'; 
    $recurringPaymentDetails['BILLINGFREQUENCY'] = 365; 
    $recurringPaymentDetails['PROFILESTARTDATE'] = date(DATE_ATOM); 
    $recurringPaymentDetails['BILLINGPERIOD'] = Api::BILLINGPERIOD_DAY; 

一切正常的准备

$agreementDetails['PAYMENTREQUEST_0_AMT'] = $this->view['user']->money; 
    $agreementDetails['PAYMENTREQUEST_0_CURRENCYCODE'] = 'EUR'; 
    $agreementDetails['PAYMENTREQUEST_0_ITEMAMT'] = $this->view['user']->money; 
    $agreementDetails['PAYMENTREQUEST_0_PAYMENTACTION'] = "sale"; 
    $agreementDetails['L_PAYMENTREQUEST_0_NAME0'] = "Annual subscription"; 
    $agreementDetails['L_PAYMENTREQUEST_0_QTY0'] = 1; 
    $agreementDetails['L_PAYMENTREQUEST_0_AMT0'] = $this->view['user']->money; 
    $agreementDetails['NOSHIPPING'] = Api::NOSHIPPING_NOT_DISPLAY_ADDRESS; 
    $agreementDetails['L_BILLINGTYPE0'] = Api::BILLINGTYPE_RECURRING_PAYMENTS; 
    $agreementDetails['L_BILLINGAGREEMENTDESCRIPTION0'] = 'Annual account subscription'; 

这些。

我在这里的问题是,我只是想知道,如果我的客户的经常性支付将被接受和支付。还有,如果我的客户没有支付年费。

我的意思是,如何知道(服务器端,PHP)特定帐户的最后一次成功付款日期?

+0

我不确定,但我想你必须设置贝宝IPN。 – 2014-10-19 16:28:36

+0

或者webhooks? – 2014-10-19 18:41:34

+0

嗨,你可以发布你的控制器的行动,因为我不能理解如何使用payumBundle创建贝宝定期付款。我应该有2个不同的控制器的行动(1为agreementDetails和1为recurringPaymentDetails)或者它是相同的行动(那么你如何初始化recurringPaymentDetails并将其链接到agreementDetails)?谢谢 – 2016-04-24 21:16:31

回答

1

你会想配置一个IPN solution。 PayPal会将数据发布到您在任何时间进行交易时设置的侦听器脚本。您可以更新您的数据库,发送自定义电子邮件通知,点击第三方网络服务,或其他任何您可能想要基于付款,退款,新配置文件,暂停配置文件,纠纷等自动化。

您也可以使用TransactionSearch API并传入ProfileID以获取与该配置文件关联的交易。