0
누군가 도와 드릴 수 있습니까? 다음과 같은 오류 메시지가 계속 표시됩니다.Paypal API NVP 오류 메시지 : 품목 범주가 제공되는 경우 품목 이름, 금액 및 수량이 필요합니다.
SetExpressCheckout API 호출에 실패했습니다. 하면 ArgumentError 코드 누락 : 자세한 오류 메시지 : 항목 범주가 provided.Short 오류 메시지의 경우 항목 이름, 금액과 수량이 필요 10003Error 심각도 코드 : 오류 "
require_once ("paypalfunctions.php");
$task = $_GET['task'];
$regRef = $_SESSION['regRef'];
if(strcmp($task, "paypal") == 0) {
$totalAmount = $_SESSION["netAmount"];
$vatAmount = number_format((floor($totalAmount * 0.20)), 2, '.', '');
$grossAmount = number_format(($totalAmount + $vatAmount), 2, '.', '');
$currencyCodeType = "GBP";
$paymentType = "Sale";
$returnURL = "https://myurl.com/events/confirm_registration";
$cancelURL = "http://myurl.com/events/checkout-handle.php?task=cancel";
$host = "******";
$dbuser = "******";
$pass = "******";
$db = "******";
$connection = mysql_connect($host, $dbuser, $pass) or die ("Unable to connect!");
mysql_select_db($db) or die ("Unable to select database!");
mysql_query("UPDATE registrations SET `status`='paypal' WHERE `regRef`='$regRef'") or die ("Error in query: $query.".mysql_error());
$queryItems = mysql_query("SELECT `eventName`, `itemPrice`, COUNT(*) FROM orders WHERE `regRef`='$regRef' GROUP BY `itemPrice`") or die ("Error in query: $query.".mysql_error());
$numItems = mysql_num_rows($queryItems);
$items = array();
while($row = mysql_fetch_array($queryItems)) {
$localVat = $row['itemPrice']*0.2;
$items[] = array('name' => $row['eventName'], 'amt' => $row['itemPrice'], 'qty' => $row['COUNT(*)'], 'vat' => $localVat);
}
mysql_close($connection);
$resArray = SetExpressCheckoutDG($grossAmount, $paymentType, $vatAmount, $returnURL, $cancelURL, $currencyCodeType, $items);
이 무엇이고 그 다음입니다 어떤 도움에 감사드립니다
$PROXY_HOST = '127.0.0.1';
$PROXY_PORT = '808';
$SandboxFlag = false;
$API_UserName="******";
$API_Password="******";
$API_Signature="******";
// BN Code is only applicable for partners
$sBNCode = "PP-ECWizard";
if ($SandboxFlag == true)
{
$API_Endpoint = "https://api-3t.sandbox.paypal.com/nvp";
$PAYPAL_URL = "https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=";
}
else
{
$API_Endpoint = "https://api-3t.paypal.com/nvp";
$PAYPAL_URL = "https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=";
}
$USE_PROXY = false;
$version="93";
if (session_id() == "")
session_start();
function SetExpressCheckoutDG($grossAmount, $paymentType, $vatAmount, $returnURL, $cancelURL, $currencyCodeType, $items)
{
$itemsTotal = 0;
$vatTotal = 0;
foreach($items as $index => $item)
{
$nvpstr .= "&L_PAYMENTREQUEST_0_NAME" . $index . "=" . urlencode($item["name"]);
$nvpstr .= "&L_PAYMENTREQUEST_0_AMT" . $index . "=" . urlencode($item["amt"]);
$nvpstr .= "&L_PAYMENTREQUEST_0_QTY" . $index . "=" . urlencode($item["qty"]);
$nvpstr .= "&L_PAYMENTREQUEST_0_TAXAMT" . $index . "=" . urlencode($item["vat"]);
$nvpstr .= "&L_PAYMENTREQUEST_0_ITEMCATEGORY" . $index . "=Physical";
$nvpstr .= "&L_PAYMENTREQUEST_0_DESC" . $index . "=APN Event";
$itemsTotal = $itemsTotal + ($item["amt"] * $item["qty"]);
$vatTotal = $vatTotal + ($item["vat"] * $item["qty"]);
}
$nvpstr .= "&PAYMENTREQUEST_0_ITEMAMT=" . $itemsTotal;
$nvpstr .= "&PAYMENTREQUEST_0_TAXAMT=" . $vatTotal; //tax amount
$nvpstr .= "&PAYMENTREQUEST_0_AMT=". $grossAmount; //total cost of items inc tax
$nvpstr .= "&PAYMENTREQUEST_0_PAYMENTACTION=" . $paymentType;
$nvpstr .= "&RETURNURL=" . $returnURL;
$nvpstr .= "&CANCELURL=" . $cancelURL;
$nvpstr .= "&PAYMENTREQUEST_0_CURRENCYCODE=" . $currencyCodeType;
$nvpstr .= "&REQCONFIRMSHIPPING=0";
$nvpstr .= "&NOSHIPPING=1";
$_SESSION["currencyCodeType"] = $currencyCodeType;
$_SESSION["PaymentType"] = $paymentType;
$resArray=hash_call("SetExpressCheckout", $nvpstr);
$ack = strtoupper($resArray["ACK"]);
if($ack=="SUCCESS" || $ack=="SUCCESSWITHWARNING")
{
$token = urldecode($resArray["TOKEN"]);
$_SESSION['TOKEN']=$token;
}
return $resArray;
}
paypalfunctions.php 파일
. :
마지막으로 생성되는 요청 문자열에 항목 세부 정보가 모두 포함되지는 않습니다. 생성 된 원시 API 요청 샘플을 게시하면 누락 된 항목을 파악하는 데 도움이됩니다. –
응답 주셔서 감사합니다, 나는 결국 그것을 알아 냈습니다. 값 배열 중 하나를 보내려고했던 값 중 하나는 = amt가 0이었습니다. paypals 문서에 따르면 0 또는 음수를 0으로 넘길 수는 없습니다. – user2068441