Php 贝宝结账:付款后更新数据库中的值
我目前正在我的网站的商店工作。我正在使用智能贝宝按钮进行付款。我销售的是单件商品,所以库存编号始终为一。我所做的是,当订单被批准时,它会更新数据库中的库存编号。然而,当我测试商店时,一切都没有改变。这是我目前的代码Php 贝宝结账:付款后更新数据库中的值,php,mysql,paypal,payment-gateway,Php,Mysql,Paypal,Payment Gateway,我目前正在我的网站的商店工作。我正在使用智能贝宝按钮进行付款。我销售的是单件商品,所以库存编号始终为一。我所做的是,当订单被批准时,它会更新数据库中的库存编号。然而,当我测试商店时,一切都没有改变。这是我目前的代码 <?php include 'pdo_connect.php'; $product_id = $_GET['product']; $stmt = $db->prepare("SELECT * FROM products Where id = :id"
<?php
include 'pdo_connect.php';
$product_id = $_GET['product'];
$stmt = $db->prepare("SELECT * FROM products Where id = :id");
$stmt->bindParam(':id', $product_id );
$stmt->execute();
while($row = $stmt->fetch()){
$stock = $row['stock'];
if ($stock > 0){
echo
"<script>
paypal.Buttons({
style: {
shape: 'rect',
color: 'blue',
layout: 'vertical',
label: 'paypal',
locale: 'en_CY'
},
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [{
amount: {
value: ". $row['paypal_price'] .",
currency: 'EUR'
}
}]
});
},
onApprove: function(data, actions) {
return actions.order.capture().then(function(details) {
localStorage.clear();
window.location.href = 'http://localhost/website/thankyou.php';
//alert('Transaction completed by ' + details.payer.name.given_name + '!');
alert('Your order has been processed');
$row = 'UPDATE products SET `stock` = 0';
});
}
}).render('#paypal-button-container');
</script>";
}
}
?>
onApprove必须使用诸如fetch之类的请求调用服务器上的实际路由
理想情况下,捕获应该发生在服务器上,而不是使用
action.orders.capture()
。请参阅
您可以使用Checkout PHP SDK。请参阅位于的“设置事务”和“捕获事务”指南。显然,onApprove回调中的PHP代码看起来很奇怪