Paypal与Codeigniter

时间:2013-09-05 18:03:20

标签: codeigniter paypal

我正在使用paypal和codeigniter。

我有paypal凭据,请在下面找到 -

$this->API_USERNAME = '************';
$this->API_PASSWORD = '************';
$this->API_SIGNATURE = '************';

我的要求是:直接向用户的PayPal电子邮件地址发送付款。我只有用户的paypal电子邮件地址。

我使用了Paypal_pro codeigniter库,但没有运气,任何建议。我的代码在下面 -

$nvpStr = "&EMAILSUBJECT=$emailSubject&RECEIVERTYPE=$receiverType&CURRENCYCODE=$currency";
 $nvpStr.="&L_EMAIL0=$receiverEmail&L_Amt0=$amount&L_ITEMAMT=$amount&L_UNIQUEID0=$uniqueID&L_NOTE0=$note";
$httpParsedResponseAr = $this->paypal_pro->hash_call('MassPay', $nvpStr);

回应是 -

数组([TIMESTAMP] => 2013-09-05T17:45:07Z [CORRELATIONID] => 3dfc532f74f43 [ACK] =>失败[VERSION] => 57.0 [BUILD] => 7560199 [L_ERRORCODE0 ] => 10329 [L_SHORTMESSAGE0] =>用户被屏蔽[L_LONGMESSAGE0] =>很抱歉,您的PayPal帐户目前无法发送大量付款。请与PayPal客户服务或您的客户经理联系。 [L_SEVERITYCODE0] =>错误)

但上面的代码可以正常使用测试凭据,请在下面找到 -

$this->API_USERNAME = 'seller_1297608781_biz_api1.lionite.com';
$this->API_PASSWORD = '1297608792';
$this->API_SIGNATURE = 'A3g66.FS3NAf4mkHn3BDQdpo6JD.ACcPc4wMrInvUEqO3Uapovity47p';

然后我改变了这一行 -

$httpParsedResponseAr = $this->paypal_pro->hash_call('SetExpressCheckout', $nvpStr);

但它返回错误 -

[L_SHORTMESSAGE0] => Transaction refused because of an invalid argument. See additional error messages for details.
[L_LONGMESSAGE0] => Order total is missing.

任何人都能帮助我,我做错了吗?

1 个答案:

答案 0 :(得分:0)

必须在真实帐户中特别批准并启用MassPay才能使用它。沙箱可以在未经批准的情况下访问它,这就是为什么它适用于您的测试帐户。

SetExpressCheckout是将Express Checkout付款流程整合到您的网站或应用程序中的第一步,其NVP字符串将与您尝试使用MassPay完全不同。您收到的错误是因为您发送的字符串中没有包含AMT参数。

如果您只是想从自己的帐户向另一个帐户汇款,可以使用Pay API

我建议您查看我的CodeIgniter library for PayPal,这样您就可以轻松设置付款申请。