1

私はpaypalipnを使用して、自分のサイトのメンバーに[今すぐ購入]ボタンを使用してプレミアムメンバーシップを購入させようとしています。私が最初にそれを試したとき、それはまったく機能しませんでした。いくつかの変更の後、私は正常に支払いを受け取ることができました。唯一の問題は、ipnを介してデータベースに入力されるはずのデータが...どういうわけか正しくないことでした。メールアドレスは正しいのですが、txn_idが間違っていて、日付が挿入されていません。トランザクションの最後に指定されたトランザクションIDが、データベースに挿入されたものと一致しません。

また、トランザクションが完了しても、return_cancelURLに送信されます。

テーブル列-id(自動インクリメント)、txn_id(ペイパルトランザクションID)、電子メール(購入者の)

// assign posted variables to local variables
$txn_id = $_POST['txn_id'];
$payer_email = $_POST['payer_email'];
$user_id = mss($_POST['custom']); //user id
$curdate = date("Y-m-d H:i:s");

if (!$fp) {
    // HTTP ERROR
} else {
    fputs ($fp, $header . $req);
    while (!feof($fp)) {
        $res = fgets ($fp, 1024);
        if (strcmp ($res, "VERIFIED") == 0) {
            $update_prem = mysql_query("UPDATE `users` SET `accountype` = '2' WHERE `users`.`id` ='".$user_id."'");
            $log_query=mysql_query("INSERT INTO `log` (`id`, `txn_id`, `date`, `email`) VALUES ('','".$txn_id."', '".$curdate."','1".$payer_email."')");
        }
        else if (strcmp ($res, "INVALID") == 0) {
            // log for manual investigation
            $log_query=mysql_query("INSERT INTO `pplog` (`lid`, `txn_id`, `date`, `email`) VALUES ('','".$txn_id."', '".$curdate."','000".$payer_email."')");
        }
    }
    fclose ($fp);
}

また、「1。最初の数回は2回ログに記録され、それからなぜそれが行われたのかがわかりましたが、今では1回だけログに記録されますが、'"。$payer_email。"'???

メールの問題が発生しました。残っているのは、トランザクションが完了したときにペイパルが無効を返すのはなぜですか?それはペイパルサンドボックスのものだからですか?

誰かがこれの原因が何であるかを知っていますか、または誰かがこの問題を自分で抱えていましたか?

4

1 に答える 1

0

または、インターネットで利用できるPHP Paypal IPN統合クラスがいくつかありますが、それらのいずれかを試しましたか?私はそれらのうちの2つをリンクしました、それが役立つかどうか見てください。

http://www.micahcarrick.com/php-paypal-ipn-integration-class.html

http://www.geniegate.com/other/paypal/

これがお役に立てば幸いです。

于 2011-07-09T15:52:47.320 に答える