Paypal空白订单摘要

时间:2011-11-07 21:28:53

标签: php paypal payment

  

可能重复:
  Paypal Checkout Express empty cart problem

我有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 );
                  }

任何帮助都会得到真正的帮助,提前谢谢。

2 个答案:

答案 0 :(得分:4)

除了此处的其他评论之外,在从SetExpressCheckout获取响应后重定向到PayPal时,请务必使用未记录的“useraction”选项:

CMD = _express结账&安培;?的 useraction =提交&安培;标记=所述-返回令牌

Here's the PayPal forum reference to this parameter

答案 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