谁能请给一个简单的例子,贝宝与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
进行回调请求,并根据支付状态做各种事情。