_ xcart не работает должным образом в платежной форме Paypal «Ваша корзина пуста»

#php #paypal #paypal-buttons

#php #paypal #paypal-кнопки

Вопрос:

После нескольких недель попыток заставить мою платежную форму Paypal отображать список товаров, я, наконец, остановил сообщения об ошибках своим кодом, но когда я нажимаю на кнопку «купить» и перехожу в Paypal, Paypal сообщает, что моя корзина пуста, хотя это не так.

Я повторил cookie-файл элементов корзины (используя cookie-файл php cart), но по какой-то причине Paypal не находит товары в корзине

Вот мой код:

cart.php

 <?php
$page_title="Cart";
include 'includes/header.php';


$action = isset($_GET['action']) ? $_GET['action'] : "";
$name = isset($_GET['name']) ? $_GET['name'] : "";

if($action=='removed'){
echo "<div class='alert alert-info'>";
    echo "<strong>{$name}</strong> was removed from your cart!";
echo "</div>";
}

$cookie = $_COOKIE['cart_items_cookie'];
$cookie = stripslashes($cookie);
$saved_cart_items = json_decode($cookie, true);

if(count($saved_cart_items)>0){
// get the product ids
$ids = "";
foreach($saved_cart_items as $id=>$name){
    $ids = $ids . $id . ",";
}

// remove the last comma
$ids = rtrim($ids, ',');

//start table
echo "<table class='table table-hover table-responsive table-bordered'>";

    // our table heading
    echo "<tr>";
        echo "<th class='textAlignLeft'>Product Name</th>";
        echo "<th>Price (USD)</th>";
        echo "<th>Action</th>";
    echo "</tr>";

    $query = "SELECT id, name, price FROM products WHERE id IN ({$ids}) ORDER BY name";
    $stmt = $con->prepare( $query );
    $stmt->execute();

    $total_price=0;
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
        extract($row);

        echo "<tr>";
            echo "<td>{$name}</td>";
            echo "<td>amp;#36;{$price}</td>";
            echo "<td>";
                echo "<a href='remove_from_cart.php?id={$id}amp;name={$name}' class='btn btn-danger'>";
                    echo "<span class='glyphicon glyphicon-remove'></span> Remove from cart";
                echo "</a>";
            echo "</td>";
        echo "</tr>";

        $total_price =$price;
    }

    echo "<tr>";
            echo "<td><b>Total</b></td>";
            echo "<td>amp;#36;{$total_price}</td>";
            echo "<td>";
                echo "<a href='payment-page.php?total={$total_price}' class='btn btn-success'>";
                    echo "<span class='glyphicon glyphicon-shopping-cart'>    </span> Checkout";
                echo "</a>";
            echo "</td>";
        echo "</tr>";

echo "</table>";
}

else{
echo "<div class='alert alert-danger'>";
    echo "<strong>No products found</strong> in your cart!";
echo "</div>";
}



include 'includes/footer.php';
?>
 

И вот мой код для кнопки paypal, которая ссылается на мою корзину:

 <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="item_name_1" value="<?php echo $_COOKIE['cart_items_cookie'];?>">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business" value="me@mysite.com">
<input type="hidden" name="item_name" value="Order#21874">
<input type="hidden" name="currency_code" value="GBP">
<input type="hidden" name="amount" value="<?php echo $_GET['total'];?> ">
<input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHosted">
<input type="image" src="https://www.paypalobjects.com/en_US/GB/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal – The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1" height="1">
</form>
 

Я чего-то не понимаю?

Я довольно новичок в этом и работаю над этим уже несколько недель!

Спасибо за любую помощь или предложения

Ответ №1:

вместо передачи суммы вы должны передать amount_1. Поэтому измените это <input type="hidden" name="amount" value="<?php echo $_GET['total'];?> "> на <input type="hidden" name="amount_1" value="<?php echo $_GET['total'];?> ">