Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 贝宝结账:付款后更新数据库中的值_Php_Mysql_Paypal_Payment Gateway - Fatal编程技术网

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代码看起来很奇怪