将php自定义购物车从_xclick更改为_cart

问题描述 投票:1回答:1

在遵循了位于paypal-payment-gateway-integration的教程之后

我现在要更改此设置,以便可以将单个项目传递给PayPal,而不是仅将总数量和价格传递给PayPal。

因此,仅从方法1澄清到方法2 How do I add PayPal Checkout to my custom shopping cart?

[方法1:将购物车总金额传递到PayPal您可以将购物车的总金额传递到PayPal的“立即购买”按钮代码中,就好像它是单项购买一样。

方法2:将单个项目传递到PayPal

我关注了Passing-Individual-Items-to-PayPal和我发现的其他链接。但是这些没有我要的答案。

我如何将下面使用上述方法1运行的代码转换为方法2。我已经将表格更改为:-

<input type="hidden" name="upload" value="1">
<input type="hidden" name="cmd" value="_cart">

但是后来不知道如何传递单个项目和数量。我假设我需要在这里的某个地方添加一个循环。

下面的完整代码

process-order.php

    <?php
    // Initialize the session
    session_start();
    // Check if the user is already logged in, if yes then redirect him to welcome page
    if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){
    }
    else {
        header("location: login.php");
        exit;
    }

    require_once "ShoppingCart.php";

    $member_id = 2; // integrate authentication module here to get logged in member

    $shoppingCart = new ShoppingCart();

    /* Calculate Cart Total Items */
    $cartItem = $shoppingCart->getMemberCartItem($member_id);
    $item_quantity = 0;
    $item_price = 0;
    if (! empty($cartItem)) {
        if (! empty($cartItem)) {
            foreach ($cartItem as $item) {
                $item_quantity = $item_quantity + $item["quantity"];
                $item_price = $item_price + ($item["price"] * $item["quantity"]);
            }
        }
    }

    if(!empty($_POST["proceed_payment"])) {
        $name = $_POST ['name'];
        $address = $_POST ['address'];
        $city = $_POST ['city'];
        $zip = $_POST ['zip'];
        $country = $_POST ['country'];
    }
    $order = 0;
    if (! empty ($name) && ! empty ($address) && ! empty ($city) && ! empty ($zip) && ! empty ($country)) {
        // able to insert into database

        $order = $shoppingCart->insertOrder ( $_POST, $member_id, $item_price);
        if(!empty($order)) {
            if (! empty($cartItem)) {
                if (! empty($cartItem)) {
                    foreach ($cartItem as $item) {
                        $shoppingCart->insertOrderItem ( $order, $item["id"], $item["price"], $item["quantity"]);
                    }
                }
            }
        }
    }
    ?>


    <HTML>
    <HEAD>
    <div class="topnav" id="myTopnav">
      <a href="index.php">Home</a>
      <a href="about.php">About</a>
      <a href="contact.php">Contact</a>
      <a href="javascript:void(0);" class="icon" onClick="myFunction()">
      <i class="fa fa-bars"></i>  </a></div>
    <TITLE>Process Order</TITLE>
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link href="style.css" type="text/css" rel="stylesheet" />
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
    </HEAD>
    <BODY>
    <div id="shopping-cart">
            <div class="txt-heading">
                <div class="txt-heading-label"><strong>Shopping Cart</strong></div>

                <a id="btnEmpty" href="index.php?action=empty"><img
                    src="image/empty-cart.png" alt="empty-cart"
                    title="Empty Cart" class="float-right" /></a>
                <div class="cart-status">
                    <div>Total Quantity: <strong><?php echo $item_quantity; ?></strong></div>
                    <div>Total Price: &pound; <strong><?php echo $item_price; ?></strong></div>
                </div>
            </div>
            <?php
            if (! empty($cartItem)) {
                ?>
    <?php
                require_once ("cart-list.php");
                ?>
    <?php
            } // End if !empty $cartItem
            ?>

    </div>

    <?php if(!empty($order)) { ?>

    <form name="frm_customer_detail" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="POST">
    <input type='hidden' name='business' value='[email protected]'> 

    <input type="hidden" name="rm" value="2" />
    <input type="hidden" name="charset" value="utf-8" />

        <input type='hidden' name='item_name_1' value='<?php echo $item;?>'> 
        <input type='hidden' name='item_number_1' value="<?php echo $order;?>"> 
        <input type='hidden' name='amount_1' value='<?php echo $item_price; ?>'> 
        <input type='hidden' name='currency_code' value='GBP'> 
        <input type='hidden' name='notify_url' value='https://test.com/notify.php'> 
        <input type='hidden' name='return' value='https://test.com/response.php'> 
        <input type="hidden" name="upload" value="1">
        <input type="hidden" name="cmd" value="_cart">

        <div>
            <p align="center">
              <input type="submit" class="btn-action"
                    name="continue_payment" value="Continue Payment">
               <button class="btn-action" onClick="goBack()">Go Back</button>
            </p>
          </div>
        </form>

    <?php } else { ?>

    <div class="success">Problem in placing the order. Please try again!</div>
    <div>
    <button class="btn-action">Back</button>
    </div>

    <?php } ?>

    </BODY>
    </HTML>

    <?php
    $cartItem = $shoppingCart->getMemberCartItem($member_id);
    $item_quantity = 0;
    $item_price = 0;
    if (! empty($cartItem)) {
        if (! empty($cartItem)) {
            foreach ($cartItem as $item) {
                $item_quantity = $item_quantity + $item["quantity"];
                $item_price = $item_price + ($item["price"] * $item["quantity"]);
            }
        }
    }
    ?>
php paypal paypal-sandbox shopping-cart
1个回答
0
投票
购物车上传是非常古老的Web 1.0版本。集成了旧版网站的网站仍受支持,但这种糟糕的体验涉及将付款人重定向到您的网站之外。最好的解决方案是根本不使用它。
© www.soinside.com 2019 - 2024. All rights reserved.