PayPal IPN从第三方销售网站更新我的数据库,但不从我自己的网站更新

时间:2018-06-06 20:42:54

标签: paypal paypal-ipn

一直试图解决这个问题,因为它已经困扰了我几天。

我想做什么:

使用simpleCartJs通过我的网站接收付款,并使用return ipn更新数据库,并附上付款详情。

什么有效:

  • 通过网站付款根本没有问题。
  • PayPal确认付款并发送IPN消息并收到代码200
  • 通过第三方网站付款更新我的网站

什么行不通

  • 通过我的网站付款不会更新数据库,但如果通过第三方网站付款(例如易趣),请更新我的数据库,因为我在使用我的ipn地址启用了PayPal IPN

我目前拥有的

  • 我在Paypal中启用了IPN通知,他们正确地重定向文件(因为第三方确实更新了数据库)

我的IPN文件

require_once(dirname(__FILE__).'/paypal.class.php');  

$p = new paypal_class;             

if ($p->validate_ipn() && !empty($p->ipn_data['payment_status']) && $p->ipn_data['payment_status'] == 'Completed') {



                    $mc_gross = $_POST['mc_gross'];
                    $payer_id = $_POST['payer_id'];
                    $payment_date = $_POST['payment_date'];
                    $first_name = $_POST['first_name'];
                    $last_name = $_POST['last_name'];
                    $payer_email = $_POST['payer_email'];
                    $payment_status = $_POST['payment_status'];
                    $payer_status = $_POST['payer_status'];
                    $address_name = $_POST['address_name'];
                    $address_country = $_POST['address_country'];
                    $address_zip = $_POST['address_zip'];
                    $address_state = $_POST['address_state'];
                    $address_city = $_POST['address_city'];
                    $address_street = $_POST['address_street'];
                    $mc_shipping = $_POST['mc_shipping'];
                    $mc_currency = $_POST['mc_currency'];
                    $ipn_track_id = $_POST['ipn_track_id'];



    $stmt = $con->prepare("INSERT into orders (mc_gross, payer_id, payment_date, first_name, last_name, payer_email, payment_status, payer_status, address_name, address_country, address_zip, address_state, address_city, address_street, mc_shipping, mc_currency, ipn_track_id) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");    
    $stmt->bind_param("sssssssssssssssss", $mc_gross, $payer_id, $payment_date, $first_name, $last_name, $payer_email, $payment_status, $payer_status, $address_name, $address_country, $address_zip, $address_state, $address_city, $address_street, $mc_shipping, $mc_currency, $ipn_track_id);
    $stmt->execute();
    $stmt->close();


    }

解决这个问题的任何帮助都会很棒。

0 个答案:

没有答案