如何解决Wordpress PayPal IPN 仅将数字数据插入数据库
我正在尝试在我的 wordpress 网站上自定义存储交易数据。问题是只有 item_number
和 amount
的数字数据被插入到数据库中。但是没有文本数据被插入到数据库中。这是我的 PayPal IPN 脚本。
<?php
include('../../../wp-load.php');
$raw_post_data = file_get_contents('php://input');
$raw_post_array = explode('&',$raw_post_data);
$myPost = array();
foreach($raw_post_array as $keyval){
$keyval = explode ('=',$keyval);
if (count($keyval) == 2){
$myPost[$keyval[0]] = urldecode($keyval[1]);
}
}
$req = 'cmd=_notify-validate';
if(function_exists('get_magic_quotes_gpc')){
$get_magic_quotes_exists = true;
}
foreach($myPost as $key => $value){
if($get_magic_quotes_exists == true && get_magic_quotes_gpc() == 1){
$value = urlencode(stripslashes($value));
}else{
$value = urlencode($value);
}
$req .= "&$key=$value";
}
$ch = curl_init('https://sandbox.paypal.com/cgi-bin/webscr');
if($ch == FALSE){
return FALSE;
}
curl_setopt($ch,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,CURLOPT_POSTFIELDS,$req);
curl_setopt($ch,CURLOPT_SSLVERSION,6);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,CURLOPT_SSL_VERIFYHOST,2);
curl_setopt($ch,CURLOPT_FORBID_REUSE,CURLOPT_CONNECTTIMEOUT,30);
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Connection: Close','User-Agent: company-name'));
$res = curl_exec($ch);
$tokens = explode("\r\n\r\n",trim($res));
$res = trim(end($tokens));
if(strcmp($res,"VERIFIED") == 0 || strcasecmp($res,"VERIFIED") == 0){
$entry = $_POST['item_number']; // INSERTING
$amount = $_POST['mc_gross']; // INSERTING
$membership = $_POST['item_name']; // NOT INSERTING
$payType = $_POST['description']; // NOT INSERTING
$txnid = $_POST['txn_id']; // NOT INSERTING
$currency = $_POST['mc_currency']; // NOT INSERTING
$status = $_POST['payment_status']; // NOT INSERTING
// PAYMENT SUCCESSFUL. DO SOMETHING HERE.
$wpdb->query("INSERT INTO wp_payments(`pay_gateway`,`pay_membership`)VALUES(1,$entry)"); // INSERTING
$wpdb->query("INSERT INTO wp_payments(`pay_gateway`,`pay_membership`)VALUES(2,$membership)"); // NOT INSERTING
$wpdb->query("INSERT INTO wp_payments(`pay_gateway`,`pay_membership`)VALUES(3,$payType)"); // NOT INSERTING
$wpdb->query("INSERT INTO wp_payments(`pay_gateway`,`pay_membership`)VALUES(4,$txnid)"); // NOT INSERTING
$wpdb->query("INSERT INTO wp_payments(`pay_gateway`,`pay_membership`)VALUES(5,$amount)"); // INSERTING
$wpdb->query("INSERT INTO wp_payments(`pay_gateway`,`pay_membership`)VALUES(6,$currency)"); // NOT INSERTING
$wpdb->query("INSERT INTO wp_payments(`pay_gateway`,`pay_membership`)VALUES(7,$status)"); // NOT INSERTING
// $wpdb->query("INSERT INTO wp_payments(`pay_gateway`,`pay_entry`,`pay_membership`,`pay_type`,`pay_txnid`,`pay_amount`,`pay_currency`,`pay_status`)
// VALUES('PayPal',$entry,$membership,$payType,$txnid,$amount,$currency,$status)");
}else{
// PAYMENT UNSUCCESSFUL. DO SOMETHING HERE.
}
?>
我以前从未遇到过这样的问题。这里有什么问题?我怎样才能度过难关? pay_membership
是 longtext
数据类型。另外,如何将接收到的发布数据记录到文件中以检查我在后台处理此脚本时收到的内容?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。