public function run()
{
$postFields = 'cmd=_notify-validate';
foreach($_POST as $key => $value)
{
$postFields .= "&$key=".urlencode($value);
}
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => $this->_url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $postFields
));
$result = curl_exec($ch);
curl_close($ch);
$fh = fopen('result.txt', 'w');
fwrite($fh, $result . ' -- ' . $postFields);
fclose($fh);
echo $result;
}
}
?>
我在一个文本文件中得到结果:
?cmd = _notify-validate& test_ipn = 1& payment_type = instant& payment_date = 02:39:41 Oct 06,2011 PDT& payment_status =已完成& address_status =已确认& payer_status =已验证& first_name = John& last_name = Smith& ; payer_email=buyer@paypalsandbox.com& payer_id = TESTBUYERID01& address_name = John Smith& address_country = United States& address_country_code = US& address_zip = 95131& address_state = CA& address_city = San Jose& address_street = 123,任何街道和商业=卖家@ paypalsandbox.com和放大器; receiver_email=seller@paypalsandbox.com& receiver_id = TESTSELLERID1和放大器; residence_country = US&放大器; ITEM_NAME =东西和放大器; ITEM_NUMBER = AK-1234功放;数量= 1&安培;运费= 3.04安培;税务= 2.02和放大器; mc_currency = USD和放大器; mc_fee = 0.44&安培; mc_gross = 12.34&安培; mc_gross_1 = 9.34&安培; txn_type = web_accept&安培; txn_id =41106939¬ify_version= 2.1&安培;定制= XYZ123&安培;字符集=窗口1252&安培; verify_sign = AB3bSjvFd3wXL7rCt.OOGW-nSKg-Ahh5RbboVG4bn9LSAon94Wjt2Oj9
如何解码此字符串并将其放入mysql数据库?
我需要将客户的名字,姓氏,地址,电子邮件,物品编号,物品名称,数量,运输和时间戳放入数据库。请在代码中找到这个,我需要帮助解码并将其放入数据库。感谢
答案 0 :(得分:2)
您无需解码字符串。
我刚检查了PayPal文档。 notify-validate
返回的唯一内容是字符串VERIFIED
或INVALID
。您发布的所有内容都不是PayPal返回字符串的一部分。如果您想要姓氏,请在$_POST['last_name']
。
要将其添加到mysql INSERT语句中,请执行以下操作(我只显示4列,您可以推断到所需的所有字段):
$stmt = $con->prepare("INSERT INTO mytable (first_name, last_name, address, email) values (?, ?, ?, ?)");
$stmt->bind_param("ssss", $_POST['first_name'], $_POST['last_name'], $_POST['address'], $_POST['email']);
$stmt->execute();
答案 1 :(得分:0)
使用parse_str。
parse_str($string,$array);
var_dump($array);
答案 2 :(得分:0)
你可以用&爆炸字符串获取每个参数及其值,然后你可以使用=来获取密钥和值。
$params = explode('&', $result);
$paypal_result_arr = array();
foreach($params AS $param) {
$param_arr = explode('=', $param);
if(count($param_arr) == 2) {
$paypal_result_arr[$param_arr[0]] = $param_arr[1];
}
}
$ paypal_result_arr associative array将为您提供从paypal返回的所有值。 之后你可以使用代码$ paypal_result_arr ['first_name']得到第一个名字等等......