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);

応答は-

配列 ( [タイムスタンプ] => 2013-09-05T17:45:07Z [CORRELATIONID] => 3dfc532f74f43 [ACK] => 失敗 [バージョン] => 57.0 [ビルド] => 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 は、エクスプレス チェックアウトの支払いフローを Web サイトまたはアプリケーションに統合するための最初のステップであり、その NVP 文字列は、MassPay で試しているものとはまったく異なります。受け取ったエラーは、送信した文字列に AMT パラメータが含まれていなかったためです。

自分のアカウントから別のアカウントに送金するだけの場合は、Pay APIを使用できます。

PayPal 用の CodeIgniter ライブラリを参照することをお勧めします。これにより、Pay リクエストのセットアップが非常に簡単になります。

于 2013-09-05T18:18:05.057 に答える