我有paypal expresscheckout的问题。 我使用了集成向导https://www.paypal-labs.com/integrationwizard/ecpaypal/main.php中的代码,一切正常但是当我被重定向到paypal时,我希望在paypal的页面上有一个订单总结,例如总金额和描述类型,但在我的情况下它的空白(就像在这个屏幕上http://imageshack.us/photo/my-images/819/blankv.png/)我可以把我正在使用的代码片段放在:
// ==================================
// PayPal Express Checkout Module
// ==================================
//'------------------------------------
//' The paymentAmount is the total value of
//' the shopping cart, that was set
//' earlier in a session variable
//' by the shopping cart page
//'------------------------------------
$paymentAmount = $_SESSION["Payment_Amount"];
//'------------------------------------
//' When you integrate this code
//' set the variables below with
//' shipping address details
//' entered by the user on the
//' Shipping page.
//'------------------------------------
$sql = "SELECT * FROM orders_shipping_address WHERE orderid={$_SESSION['orderId']}";
$shipping_address = $this->db->query($sql)->fetchAll();
$shipToName = $shipping_address[0]['lastname'] . " " . $shipping_address[0]['firstname'];
$shipToStreet = $shipping_address[0]['street1'];
$shipToStreet2 = $shipping_address[0]['street2']; //Leave it blank if there is no value
$shipToCity = $shipping_address[0]['city'];
$shipToState = "Romania";
$shipToCountryCode = "RO"; // Please refer to the PayPal country codes in the API documentation
$shipToZip = $shipping_address[0]['zip'];
$phoneNum = $shipping_address[0]['phone'];
//'------------------------------------
//' The currencyCodeType and paymentType
//' are set to the selections made on the Integration Assistant
//'------------------------------------
$currencyCodeType = $_SESSION['currencyCodeType'] = "EUR";
$paymentType = $_SESSION['PaymentType'] = "Sale";
//'------------------------------------
//' The returnURL is the location where buyers return to when a
//' payment has been succesfully authorized.
//'
//' This is set to the value entered on the Integration Assistant
//'------------------------------------
$returnURL = $ret;
//'------------------------------------
//' The cancelURL is the location buyers are sent to when they hit the
//' cancel button during authorization of payment during the PayPal flow
//'
//' This is set to the value entered on the Integration Assistant
//'------------------------------------
$cancelURL = $cancel;
//'------------------------------------
//' Calls the SetExpressCheckout API call
//'
//' The CallMarkExpressCheckout function is defined in the file PayPalFunctions.php,
//' it is included at the top of this file.
//'-------------------------------------------------
$resArray = CallMarkExpressCheckout ($paymentAmount, $currencyCodeType, $paymentType, $returnURL,
$cancelURL, $shipToName, $shipToStreet, $shipToCity, $shipToState,
$shipToCountryCode, $shipToZip, $shipToStreet2, $phoneNum
);
$ack = strtoupper($resArray["ACK"]);
if($ack=="SUCCESS" || $ack=="SUCCESSWITHWARNING")
{
//dump($resArray);
//die;
$token = urldecode($resArray["TOKEN"]);
$_SESSION['reshash']=$token;
RedirectToPayPal ( $token );
}
任何帮助都会得到真正的帮助,提前谢谢。
答案 0 :(得分:4)
除了此处的其他评论之外,在从SetExpressCheckout获取响应后重定向到PayPal时,请务必使用未记录的“useraction”选项:
CMD = _express结账&安培;?的 useraction =提交强>&安培;标记=所述-返回令牌
答案 1 :(得分:3)
在调用SetExpressCheckout之前,您需要将项目添加到nvp
字符串。
以下额外参数添加两个产品:
&L_PAYMENTREQUEST_0_NAME0=productname
&L_PAYMENTREQUEST_0_NUMBER0=productcode
&L_PAYMENTREQUEST_0_DESC0=product-description
&L_PAYMENTREQUEST_0_AMT0=productamount
&L_PAYMENTREQUEST_0_QTY0=product-unit-price
&L_PAYMENTREQUEST_0_NAME1=productname
&L_PAYMENTREQUEST_0_NUMBER1=productcode
&L_PAYMENTREQUEST_0_DESC1=product-description
&L_PAYMENTREQUEST_0_AMT1=productamount
&L_PAYMENTREQUEST_0_QTY1=product-unit-price