2

PHPを使用してExpressCheckout、PaypalAPIを実装しています。

最初のステップであるSetExpressCheckoutに問題はありません。私はawk=successを持っています。

しかし、メソッドGetExpressCheckoutで、「セキュリティヘッダーが無効です」というメッセージが表示されます。私は問題を理解しようとしましたが、カールがうまく機能していなかったのかもしれません。

私がしたこと私はURL全体をコピーしました:

https://api-3t.sandbox.paypal.com/nvp?USER=sanbox_1276609583_biz_api1.gmail.com&PWD=1276609589&SIGNATURE=AYVosblmD7khKkvvb.bNxvFT0OQ2A8GopwByEuC.CfMHt65VaUmvAEy-&VERSION=

ブラウザに貼り付けます。これにより、次のようになります。

TOKEN = EC%2d3YG18670X88588437&CHECKOUTSTATUS = PaymentActionNotInitiated&TIMESTAMP = 2010%2d06%2d16T07%3a40%3a12Z&CORRELATIONID = e1a1e469bf066&ACK = Success&VERSION = 62%2e0&BUILD = 1356926 .. ..

しかし、私が作成した関数でそのURLを実行すると、機能しなくなります。以下は私の機能です:

関数mycurl($ url、$ querystr){

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_URL, $url);

  curl_setopt($ch, CURLOPT_VERBOSE, 1);

  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

  curl_setopt($ch, CURLOPT_POST, 1);

  curl_setopt($ch, CURLOPT_POSTFIELDS, $querystr);

  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

  $response = curl_exec($ch); 

  curl_close ($ch);

  return $response;

}

誰かがこれを手伝ってくれることを願っています。本当にありがとう。

注:-私はこれにサンドボックスを使用しました。サンドボックスアカウントを作成しました。マーチャントを表すビジネスアカウントと、バイヤーを表す個人アカウントがあります。

そして私はこれを使用しました:

エンドポイントURL:api-3t.sandbox.paypal.com/nvpサンドボックスURL:www.sandbox.paypal.com/cgi-bin/webscr

これは問題ではないはずです。

4

1 に答える 1

0

これはおそらく範囲の問題です

関数では$querystr、curl 呼び出しを実行する直前に変数をファイルに書き込むか、画面に出力してすべてがそこにあることを確認する必要があります。ほとんどの場合、変数に関数の外部から変数を使用して$querystrおり、その結果、空または部分が欠落しています。

問題を説明する例を次に示します

<?php
$variable = 'bar';
echo $variable;         // prints bar

function myfunc(){
    echo $variable;         // prints nothing
}
function myfunc1(){
    global $variable, $variable1, $variable2;
    echo $variable;        // prints bar
}
?>

詳細については、http: //us3.php.net/manual/en/language.variables.scope.phpを参照してください。

$response 変数を設定した後に、この行も追加します

echo '<pre>'; print_r($response); echo '</pre>';

エラー コードと長いエラー メッセージが表示されます。詳細については、こちらのペイパル サイトを参照してください。 ]

于 2010-06-18T21:33:53.213 に答える