贝宝集成与DIY购物车


Paypal integration with a DIY shopping cart

谁能给一个简单的例子,贝宝与DIY购物车的集成,血腥的好工作。

我已经实现了我自己的购物车,只是想把总成本传递给paypal,并指导用户在那里付款。

这个包(https://github.com/drewjoh/phpPayPal)似乎符合我的要求:

1)它包括使用一个简单的php include语句来合并它-没有Composer或任何其他烦人的包袱,我也必须弄清楚。

2) PHP实现。 3)简单的类和函数调用。

唯一的问题是它不能很好地工作!

我从paypal沙箱中得到这个:

未找到

请求的URL 'cgi-bin'ppapi在此服务器上找不到。

另外,在尝试使用ErrorDocument来处理请求时遇到404 Not Found错误。

Apache Server at api-3t.sandbox.paypal.com端口443

这是我的代码。我怎么才能让它正常工作?

一些人真的需要写一个全面的一步一步的教程,如何使用paypal API等实际工作的例子,具体每个具体的脚本语言,而不仅仅是无用的paypal变量定义。Paypal的开发者页面完全没用——令人困惑,没有具体的例子,而且到处都是。

<?php
        header('Content-Type: text/html; charset=utf8');
        session_start();
        require_once "phpPayPal.php";
/*
        echo "<pre>";
        print_r($_POST);
        echo "</pre><br><br>";
*/        
        function doPaypalExpressCheckout()
        {
            // Create instance of the phpPayPal class
            $paypal = new phpPayPal(true);
            // Set the amount total for this order.
            $paypal->amount_total = '50.49';
/*        
            $paypal->email = $_SESSION["Email"];
            $paypal->first_name = $_SESSION["GivenName"];
            $paypal->middle_name = $_SESSION["MiddleName"];
            $paypal->last_name = $_SESSION["Surname"];
            $paypal->suffix = "";
            $paypal->address1 = $_SESSION["Address"];
            $paypal->address2 = "";
            $paypal->city = $_SESSION["Suburb"];
            $paypal->state = $_SESSION["State"];
            $paypal->postal_code = $_SESSION["Postcode"];
            $paypal->phone_number = $_SESSION["Phone"]." / ".$_SESSION["Mobile"];
            $paypal->country_code = get_country_code($_SESSION["UserCountry"]);
            $paypal->currency_code = get_currency_code($_SESSION["UserCountry"]);
*/    
            // Make the request
            $paypal->set_express_checkout();
            // If successful, we need to store the token, and then redirect the user to PayPal
            if (!$paypal->_error)
            {
                // Store your token
                $_SESSION['token'] = $paypal->token;
                // Now go to PayPal
                $paypal->set_express_checkout_successful_redirect();
            }
/*
            for ($nI = 0; $nI < count($_SESSION["arrayShoppingCart"]); $nI++)
            {
                //**********************************************************************
                //  array("CategoryIndex"=>$nCategoryIndex,
                //          "ItemIndex"=>$nItemIndex,
                //        "Description"=>$arrayItems[$nItemIndex]["Description"],
                //        "Quantity"=>intval($nQuantity),
                //        "Price"=>floatval($arrayItems[$nItemIndex]["Price"]),
                //        "Volume"=>floatval($arrayItems[$nItemIndex]["Volume"]),
                //        "Postage"=>floatval($arrayItems[$nItemIndex]["Postage"]),
                //        "Options"=>$arrayOptions);
                //***********************************************************************                                                                                                    
                $arrayCartItem = $_SESSION["arrayShoppingCart"][$nI];
                $strCategory = $_SESSION["arrayCategories"][$arrayCartItem["CategoryIndex"]][0];
                $nInventoryIndex = $arrayCartItem["ItemIndex"];
                $arraInventoryItem = $_SESSION["arrayInventory"][$strCategory][$nInventoryIndex];
                $arrayItemCartOptions = $arrayCartItem["Options"];
            }
*/    
        }
        if (isset($_POST["Paypal"]))
        {
            doPaypalExpressCheckout();
        }
?>

看看Opencart PayPal标准实现(控制器和视图)

写得很好,很容易理解。

在控制器ControllerPaymentPPStandard,方法index中,它将创建paypal产品表单并重定向(提交表单)到paypal。然后paypal将对notify_url,方法callback进行回调请求,并根据支付状态做各种事情。