請提前原諒我的無知,但我相當新的PHP,這一個一直在竊聽我一段時間。 我正在嘗試爲銷售單個項目的在線商店編寫IPN腳本。一旦付款完成,腳本將更新數據庫並將可用性從「可用」更改爲「不可用」。 除了更新數據庫之外,IPN似乎還能正常工作。我現在正處於一種無法理解的狀態,因爲我看不到腳本有什麼問題。這裏是我有什麼:PayPal IPN不更新MySQL數據庫
curl_close($ch);
if (strcmp ($res, "VERIFIED") == 0) {
$token = $_POST['invoice'];
$item= $_POST['invoice'];
$conn=new PDO("mysql:host=SERVER;dbname=MYDATABASE","NAME","PASS");
if ($_POST['payment_status'] == 'completed')
{
$sql="UPDATE `tbl_products` SET `id_status` = 3 WHERE `id_product`=:idproduct";
$stmt=$conn->prepare($sql);
$stmt->bindParam(':idproduct',$item);
$stmt->execute();
}
if ($_POST['payment_status'] == 'pending')
{
$sql="UPDATE `tbl_products` SET `id_status` = 2 WHERE `id_product`=:idproduct";
$stmt=$conn->prepare($sql);
$stmt->bindValue(':idproduct',$item);
$stmt->execute();
}
foreach ($_POST as $key => $value)
{
$emailtext .= $key . " = " .$value ."\n\n";
}
mail("MYEMAIL", "Live-VALID IPN", $emailtext . "\n\n" . $req);
}
else if (strcmp ($res, "INVALID") == 0)
{
// log for manual investigation
foreach ($_POST as $key => $value)
{
$emailtext .= $key . " = " .$value ."\n\n";
}
mail("MYEMAIL", "Live-INVALID IPN", $emailtext . "\n\n" . $req);
}
要綁定invoice'的'到一個叫做'idproduct'參數的值的檢查。產品和發票是不同的東西,所以也許看看? –
嗨克勞斯。非常感謝你的回覆。 「發票」只是我用來傳遞物料編號(即數據庫中的id_product)的格式中的一個變量。我剛把它改爲「item_number」,然後再試一次,但仍然沒有運氣。我idid有它作爲「item_number」之前,但將其改爲「發票」,看看是否會有所幫助。 – paul