我正在使用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.
任何人都能帮助我,我做错了吗?
答案 0 :(得分:0)
必须在真实帐户中特别批准并启用MassPay才能使用它。沙箱可以在未经批准的情况下访问它,这就是为什么它适用于您的测试帐户。
SetExpressCheckout是将Express Checkout付款流程整合到您的网站或应用程序中的第一步,其NVP字符串将与您尝试使用MassPay完全不同。您收到的错误是因为您发送的字符串中没有包含AMT参数。
如果您只是想从自己的帐户向另一个帐户汇款,可以使用Pay API。
我建议您查看我的CodeIgniter library for PayPal,这样您就可以轻松设置付款申请。