简体   繁体   English

PayPal IPN到mysql数据库不起作用

[英]PayPal IPN to mysql database not working

I'm trying to get my PayPal automatically inserts the payment in MySQL. 我正在尝试让我的PayPal自动在MySQL中插入付款。

This is my table structure: 这是我的表结构:

CREATE TABLE IF NOT EXISTS idevicev2 (
  id int(11) NOT NULL AUTO_INCREMENT,
  transactie_id varchar(60) NOT NULL,
  programma varchar(60) NOT NULL,
  naam varchar(60) NOT NULL,
  email varchar(60) NOT NULL,
  transactie_datum datetime NOT NULL,
  status varchar(60) NOT NULL,
  totaal_bedrag varchar(8) NOT NULL,
  ieverything_else text NOT NULL,
  username varchar(60) NOT NULL,
  password varchar(2) NOT NULL DEFAULT '10',
  active varchar(2) NOT NULL DEFAULT '10',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

And this is the script i use for IPN: 这是我用于IPN的脚本:

<?php
   //Change these with your information
$paypalmode = ''; //Sandbox for testing or empty ''
$dbusername     = 'myusername'; //db username
$dbpassword     = 'mypassword'; //db password
$dbhost     = 'localhost'; //db host
$dbname     = 'mydbname'; //db name

if($_POST)
{
        if($paypalmode=='sandbox')
        {
            $paypalmode     =   '.sandbox';
        }
    $req = 'cmd=' . urlencode('_notify-validate');
    foreach ($_POST as $key => $value) {
        $value = urlencode(stripslashes($value));
        $req .= "&$key=$value";
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://www'.$paypalmode.'.paypal.com/cgi-bin/webscr');
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: www'.$paypalmode.'.sandbox.paypal.com'));
    $res = curl_exec($ch);
    curl_close($ch);

    if (strcmp ($res, "VERIFIED") == 0)
    {
        $transaction_id = $_POST['txn_id'];
        $username = $_POST['txn_id'];
        $itemname = $_POST['item_name'];
        $firstname = $_POST['first_name'];
        $lastname = $_POST['last_name'];
        $payeremail = $_POST['email'];
        $paymentdate = $_POST['payment_date'];
        $paymentstatus = $_POST['payment_status'];
        $mdate= date('Y-m-d h:i:s',strtotime($paymentdate));
        $mcgross = $_POST['mc_gross'];
        $otherstuff = json_encode($_POST); 

        $conn = mysql_connect($dbhost,$dbusername,$dbpassword);
        if (!$conn)
        {
         die('Could not connect: ' . mysql_error());
        }

        mysql_select_db($dbname, $conn);

        // insert in our IPN record table
        $query = "INSERT INTO idevicev2
        (transactie_id,programma,naam,email,transactie_datum,status,totaal_bedrag,username,ieverything_else)
        VALUES
        ('$transaction_id','$itemname','$firstname $lastname','$payeremail','$mdate','$paymentstatus','$mcgross','$username','$otherstuff')";

        if(!mysql_query($query))
        {
            //mysql error..!
        }
        mysql_close($conn);

    }

} ?> }?>

Now when I go to: https://developer.paypal.com/webapps/developer/applications/ipn_simulator and enter my IPN URL, PayPal says IPN sent but i dont get the data in my MYSQL database. 现在,当我转到: https : //developer.paypal.com/webapps/developer/applications/ipn_simulator并输入我的IPN URL时,PayPal说已发送IPN,但我没有在MYSQL数据库中获取数据。

What am I doing wrong? 我究竟做错了什么?

Made it work with sandbox account. 使它与沙盒帐户一起使用。 Now only have to change sandbox to '' 现在只需将沙箱更改为''

<?php
           //Change these with your information
        $paypalmode = 'sandbox'; //Sandbox for testing or empty ''
        $dbusername     = ''; //db username
        $dbpassword     = ''; //db password
        $dbhost     = ''; //db host
        $dbname     = ''; //db name

    if($_POST)
    {
            if($paypalmode=='sandbox')
            {
                $paypalmode     =   '.sandbox';
            }
            $req = 'cmd=' . urlencode('_notify-validate');
            foreach ($_POST as $key => $value) {
                $value = urlencode(stripslashes($value));
                $req .= "&$key=$value";
            }
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, 'https://www'.$paypalmode.'.paypal.com/cgi-bin/webscr');
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: www'.$paypalmode.'.sandbox.paypal.com'));
            $res = curl_exec($ch);
            curl_close($ch);

            if (strcmp ($res, "VERIFIED") == 0)
            {
                $transaction_id = $_POST['txn_id'];
                $payerid = $_POST['payer_id'];
                $firstname = $_POST['first_name'];
                $lastname = $_POST['last_name'];
                $payeremail = $_POST['payer_email'];
                $paymentdate = $_POST['payment_date'];
                $paymentstatus = $_POST['payment_status'];
                $mdate= date('Y-m-d h:i:s',strtotime($paymentdate));
                $otherstuff = json_encode($_POST);

                $conn = mysql_connect($dbhost,$dbusername,$dbpassword);
                if (!$conn)
                {
                 die('Could not connect: ' . mysql_error());
                }

                mysql_select_db($dbname, $conn);

                // insert in our IPN record table
                $query = "INSERT INTO ibn_table
                (transactie_id,koper_id,naam,email,transactie_datum,betalings_status,ieverything_else)
                VALUES
                ('$transaction_id','$payerid','$firstname $lastname','$payeremail','$mdate', '$paymentstatus','$otherstuff')";

                if(!mysql_query($query))
                {
                    //mysql error..!
                }
                mysql_close($conn);

            }
    }
    ?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM