Paypal(PHP):无法使用客户端证书(未找到密钥或密码短语错误?)
Paypal(PHP): unable to use client certificate (no key found or wrong pass phrase?)
我正在为我的购物图表使用 Paypal Express Checkout。我已经创建了我的 API 证书文件,如下所示。
我已经下载了 api 证书文件 cert_key_pem.txt
并用于 api 证书,如下所示。
$API_UserName = $paypal->username;
$API_Password = $paypal->password;
$API_Endpoint = "https://api-3t.sandbox.paypal.com/nvp";
$PAYPAL_URL = "https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=";
$version="64";
$currencyCodeType = "USD";
$paymentType = "Sale";
$methodName = "DoExpressCheckoutPayment";
$certFile = 'C:\xampp\htdocs\project-name\cert_key.txt';//forlocalhost
//$certFile = '/home/cpanel-username/public_html/cert_key_pem.txt'; //for live server
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$API_Endpoint);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSLCERT, $certFile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
$nvpreq="METHOD=" . urlencode($methodName) . "&VERSION=" . urlencode($version) . "&PWD=" . urlencode($API_Password) . "&USER=" . urlencode($API_UserName) . $nvpStr . "&BUTTONSOURCE=" . urlencode($sBNCode);
curl_setopt($ch, CURLOPT_POSTFIELDS, $nvpreq);
$response = curl_exec($ch);
if(curl_exec($ch) === false)
{
$message = curl_error($ch);
}
else
{
$message = 'Operation completed without any errors';
}
curl_close($ch);
echo $message;
但我收到如下错误信息。
unable to use client certificate (no key found or wrong pass phrase?)
如果您对解决此类错误有任何想法,请帮助我。谢谢
如果您使用证书来验证 API,您可能需要将端点更改为 https://api.sandbox.paypal.com/nvp
https://api-3t.sandbox.paypal.com/nvp 和所有带有“-3t”后缀的端点用于签名验证 API 调用(3T 表示 3 个令牌:username/password/signature)
我正在为我的购物图表使用 Paypal Express Checkout。我已经创建了我的 API 证书文件,如下所示。
我已经下载了 api 证书文件 cert_key_pem.txt
并用于 api 证书,如下所示。
$API_UserName = $paypal->username;
$API_Password = $paypal->password;
$API_Endpoint = "https://api-3t.sandbox.paypal.com/nvp";
$PAYPAL_URL = "https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=";
$version="64";
$currencyCodeType = "USD";
$paymentType = "Sale";
$methodName = "DoExpressCheckoutPayment";
$certFile = 'C:\xampp\htdocs\project-name\cert_key.txt';//forlocalhost
//$certFile = '/home/cpanel-username/public_html/cert_key_pem.txt'; //for live server
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$API_Endpoint);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSLCERT, $certFile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
$nvpreq="METHOD=" . urlencode($methodName) . "&VERSION=" . urlencode($version) . "&PWD=" . urlencode($API_Password) . "&USER=" . urlencode($API_UserName) . $nvpStr . "&BUTTONSOURCE=" . urlencode($sBNCode);
curl_setopt($ch, CURLOPT_POSTFIELDS, $nvpreq);
$response = curl_exec($ch);
if(curl_exec($ch) === false)
{
$message = curl_error($ch);
}
else
{
$message = 'Operation completed without any errors';
}
curl_close($ch);
echo $message;
但我收到如下错误信息。
unable to use client certificate (no key found or wrong pass phrase?)
如果您对解决此类错误有任何想法,请帮助我。谢谢
如果您使用证书来验证 API,您可能需要将端点更改为 https://api.sandbox.paypal.com/nvp
https://api-3t.sandbox.paypal.com/nvp 和所有带有“-3t”后缀的端点用于签名验证 API 调用(3T 表示 3 个令牌:username/password/signature)