1

サンドボックスで IPN をテストしています。私のウェブサイトで、Paypal と私のサイトの間のこの通信を記録します

Start validations:_notify-validate,16.94,Eligible,confirmed,SVWAAUVZX2S4Y,0.00,1 Main    St,13:57:50 May 07, 2012 PDT,Completed,windows-1252,95131,Test,0.84,US,Test   User,3.4,,verified,demarc_1336421374_biz@gmail.com,United States,San  Jose,1,As4zhnwQeMSnsOdh0NBxc2GkfRrEAd8OPZnnd3EWRDz38L81PzX-6vI- ,demarc_1321350258_per@gmail.com,6FT25620DT6366410,instant,User,CA,demarc_1336421374_biz@gmail .com,,6SHJZ2PT5YMLS,web_accept,test item,EUR,,US,1,0.00,test item,,0.00,de0561482901
2012-05-07 22:52:47 Paypal: ResponseVERIFIED
2012-05-07 22:52:47 Paypal: 1
2012-05-07 22:52:47 Paypal: Processing Trasaction: 4fa8361f-7574-444f-b821-5e660a00000f
2012-05-07 22:52:47 Paypal: 4fa8361f-7574-444f-b821-5e660a00000f

大丈夫そうですよね?しかし、ビジネス アカウントでサンドボックスにログインすると、IPN 履歴で Paypal が IPN を送信しようとしていることがわかります。トランザクションをデータベースに記録する私の Web サイトでは、多くのレコードが表示されます (応答が検証された場合に保存されます)。それはどのように可能ですか?Cakephp 関数 isValid($data ){ を使用して Paypal にポスト バックします。

$data['cmd'] = '_notify-validate';
$newData['cmd'] = '_notify-validate';
foreach ($data AS $key => $val) {
$newData[$key] = $val;
}
    $this->log("Start validations:".join(",",$newData), 'paypal');
    $data = array_map(array('PaypalIpnSource', 'clearSlash'), $newData);

    if (isset($data['test_ipn'])) {
        $server = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
    } else {
        $server = 'https://www.paypal.com/cgi-bin/webscr';
    }

    $response = $this->Http->post($server, $newData);
      $this->log("Response".$response, 'paypal');

    if ($response == "VERIFIED") {
        return true;
    }

    if (!$response) {
        $this->log('HTTP Error in PaypalIpnSource::isValid while posting back to PayPal', 'paypal');
    }

    return false;
}

}

Cakephp などの問題ではないと思います。通貨としてサンドボックス ビジネス アカウント EUR を設定しました。また、paypal 送信フォームの通貨の値は EUR です。何日もグーグルで調べた後、どんな助けも感謝します。

4

1 に答える 1