2

我正在使用带有 codeigniter 的贝宝。

我有贝宝凭证,请在下面找到 -

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

我的要求是:直接将付款发送到用户的贝宝电子邮件地址。我只有用户的贝宝电子邮件地址。

我使用了 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.

谁能帮我我做错了什么?

4

1 回答 1

0

MassPay 必须在真实账户上获得特别批准和启用才能使用它。沙盒可以在未经批准的情况下访问它,这就是它与您的测试帐户一起正常工作的原因。

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

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

我建议您查看我的 PayPal CodeIgniter 库,这将使您设置付款请求变得非常简单。

于 2013-09-05T18:18:05.057 回答