paypal express integration confusion and files provided by paypal dont work
i used the paypal integration wizard to create the files that i need to integrate paypal into a custom shopping cart and in the paypalfunctions.php page i added the api credentials. i loaded the expresscheckout.php, file provided by the wizard, and got this error
SetExpressCheckout API call failed. Detailed Error Message:
Security header is not validShort Error Message: Security
errorError Code: 10002Error Severity Code: Error
what does it mean?
this is the page i loaded only. currently i have not attached these pages to the commerce site and am only testing the files given by paypal to see if it works before doing any integration.
require_once ("paypalfunctions.php");
// ==================================
// 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 = "10.45";
//'------------------------------------
//' The currencyCodeType and paymentType
//' are set to the selections made on the Integration Assistant
//'------------------------------------
$currencyCodeType = "USD";
$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 = "http://www.mysite.com/orderConfirm.php";
//'------------------------------------
//' 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 = "http://www.mysite.com/cancelOrder.php";
//'------------------------------------
//' Calls the SetExpressCheckout API call
//'
//' The CallShortcutExpressCheckout function is defined in the file PayPalFunctions.php,
//' it is included at the top of this file.
//'-------------------------------------------------
$resArray = CallShortcutExpressCheckout ($paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL);
$ack = strtoupper($resArray["ACK"]);
if($ack=="SUCCESS" || $ack=="SUCCESSWITHWARNING")
{
RedirectToPayPal ( $resArray["TOKEN"] );
}
else
{
//Display a user friendly Error on the page using any of the following error information returned by PayPal
$ErrorCode = urldecode($resArray["L_ERRORCODE0"]);
$ErrorShortMsg = urldecode($resArray["L_SHORTMESSAGE0"]);
$ErrorLongMsg = urldecode($resArray["L_LONGMESSAGE0"]);
$ErrorSeverityCode = urldecode($resArray["L_SEVERITYCODE0"]);
echo "SetExpressCheckout API call failed. ";
echo "Detailed 开发者_运维百科Error Message: " . $ErrorLongMsg;
echo "Short Error Message: " . $ErrorShortMsg;
echo "Error Code: " . $ErrorCode;
echo "Error Severity Code: " . $ErrorSeverityCode;
}
Detailed Error Message: Security header is not valid
what does it mean?
It means that your security header is not valid.
The 39,000 Google results for your specific error message all suggest that the API username and password you are using is incorrect for the specific endpoint you're using. Either your credentials are for the sandbox and you're using them on live, or your credentials are for live and you're using them for the sandbox. Or there's a typo.
try in
paypalfunctions.php
$SandboxFlag = false;
Tried the above solution and it did not work. My Sandbox flag was correctly set and so were all my credentials.
The solution was to delete the sandbox accounts (possibly leave them be) and create and use new ones. Worked like a charm. Occasionally, credentials from Paypal's Sandbox just get gummed up and you have to start over.
精彩评论