【问题标题】:How to make payment unavailable when product out of stock with paypal smart button如何使用paypal智能按钮在产品缺货时无法付款
【发布时间】:2020-11-07 21:36:04
【问题描述】:

我正在使用 PayPal 智能按钮为我的网站进行付款。当商品缺货时,我该怎么做才能使付款不可用?知道这些物品是单数物品可能会有所帮助,因此库存编号将始终为 1。这是我当前的代码:

    <?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 + '!');
                });
            }
        }).render('#paypal-button-container');
      </script>";
    }
   }
 ?>

任何见解都将受到高度赞赏。

【问题讨论】:

  • 您希望按钮在产品缺货时隐藏,还是将其禁用以便无法点击?
  • 在我看来,您已经在使用stock &gt; 0 进行操作,因此该按钮在缺货时不应显示。因此,只需在您的 if 语句中添加 else 即可,这样您就可以用红色回应一条消息,例如“该商品目前缺货”。

标签: javascript php paypal payment-gateway


【解决方案1】:

您已经有一个用于显示按钮的 if 语句,因此您可以添加一个 else 语句来显示缺货消息。

您的实现存在一个问题,即该按钮可能同时为两个不同的人呈现,并且两个人都可以发起购买,因此您会为同一件商品获得两次付款,并且需要退款。如果这与您有关,您应该从 createOrder 函数与您的服务器进行通信,例如使用获取 API。在这个惊人相似的问题中有一个例子:https://stackoverflow.com/a/62961660/2069605

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-07
    • 2020-10-30
    • 2020-06-02
    • 2021-05-23
    • 2020-03-23
    • 2014-11-08
    • 2020-11-11
    • 2013-05-22
    相关资源
    最近更新 更多