贝宝中的订单摘要不显示项目
Posted
技术标签:
【中文标题】贝宝中的订单摘要不显示项目【英文标题】:Order summary in paypal does not show the items 【发布时间】:2015-08-19 20:38:04 【问题描述】:我在我的网站上使用了 Express Checkout 贝宝,但是当我进入支付页面贝宝时,我在订单摘要中看到的总价是这样的: http://i.stack.imgur.com/vPtkM.png
这是我的代码:
<?php
require('connexion2.php');
require 'paypal.php';
$total=0;
$product='';
$paypal = new Paypal();
$params = array(
'RETURNURL' => 'http://localhost/SFE/pages/process.php',
'CANCELURL' => 'http://localhost/SFE/pages/cancel.php',
//'PAYMENTREQUEST_0_AMT' => $total,
'PAYMENTREQUEST_0_CURRENCYCODE' => 'USD',
);
foreach($_POST["cle"] as $k => $value)
//$valeur est la Num de la facture croche
$sql="SELECT * from facture WHERE NumFacture = '$value'";
$res = $conn->query($sql) or die(print_r($connexion->errorInfo()));
$i=0;
$k=0;
while ( $data=$res->fetch_assoc())
$NumFact=$data['NumFacture'];
$Montant=$data['Montant'];
//Capture les items :
$params["L_PAYEMENTREQUEST_0_NAME$k"] = $NumFact;
//Capture le montant :
$params["L_PAYEMENTREQUEST_0_ITEMAMT"] = $Montant;
//Capture la quantity :
$params["L_PAYEMENTREQUEST_0_QTY$k"] = $NumFact;
//Valorisation du total general :
$total+= $Montant;
$i=$i+1;
$k=$k+1;
//fin while
//fin foreach
$params["PAYMENTREQUEST_0_AMT"] = $total;
//ferme la connextion
$conn->close();
$response = $paypal->request('SetExpressCheckout', $params);
if($response)
$paypal = 'https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&useraction=commit&token=' . $response['TOKEN'];
else
var_dump($paypal->errors);
die('ERREUR ');
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form action="<?php echo $paypal; ?>" method="post" target="_blank" >
<br /><br />
<input type="submit" value="Pay with PayPal!">
</body>
</html>
这是我班贝宝的代码:
<?php
class Paypal
private $user = "";
private $pwd = "";
private $signature = "";
private $endpoint = "https://api-3t.sandbox.paypal.com/nvp";
public $errors = array();
public function __construct($user = false, $pwd = false, $signature = false, $prod = false)
if($user)
$this->user = $user;
if($pwd)
$this->user = $pwd;
if($signature)
$this->user = $signature;
if($prod)
$this->endpoint = str_replace('sandbox.','', $this->endpoint);
public function request($method, $params)
$params = array_merge($params, array(
'METHOD' => $method,
'VERSION' => '74.0',
'USER' => $this->user,
'SIGNATURE' => $this->signature,
'PWD' => $this->pwd,));
$params = http_build_query($params);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $this->endpoint,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $params,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_VERBOSE => 1,
)
);
$response = curl_exec($curl);
$responseArray = array();
parse_str($response, $responseArray);
if(curl_errno($curl))
$this->errors= curl_errno($curl);
curl_close($curl);
return false;
else
if($responseArray['ACK'] == 'Success')
return $responseArray;
else
$this->errors = $responseArray;
curl_close($curl);
return false;
?>
我希望用户看到所有项目的名称、数量和描述
【问题讨论】:
您在请求中发送的 API 版本是什么?您能否提供原始 NVP 请求的副本而不是生成它的代码?需要确切了解实际发送到 PayPal 的内容。 @AndrewAngell 我添加了你现在可以看到的代码! 任何人有任何想法 【参考方案1】:我找到了解决方案: 我有 2 个错误: - 第一个是关于我输入“L_PAYEMENTREQUEST”的参数的语法,但正确的是“L_PAYMENTREQUEST”。 - 第二个错误是我在这里腾出空间: L_PAYMENTREQUEST_0_NAME0= 在 并且 paypal 无法使用,所以我确实删除了空间并且它可以工作
谢谢
【讨论】:
以上是关于贝宝中的订单摘要不显示项目的主要内容,如果未能解决你的问题,请参考以下文章