Sujan Shrestha
Sujan Shrestha

Reputation: 614

Paypal(PHP): unable to use client certificate (no key found or wrong pass phrase?)

I'm using Paypal Express Checkout for my shopping chart. i have created my API certificate file as below. enter image description here

i have downloaed the api certificate file cert_key_pem.txt and used for api credential as below.

  $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;

but i got the error message as below.

  unable to use client certificate (no key found or wrong pass phrase?)

if you have any idea on solving such type of errors then please help me. thanks

Upvotes: 1

Views: 882

Answers (1)

pp_pduan
pp_pduan

Reputation: 3402

If you are using certificate to auth the API, you may want to change the endpoint to https://api.sandbox.paypal.com/nvp

The https://api-3t.sandbox.paypal.com/nvp, and all "-3t" surffixed endpoints are for signature auth API calls (3T means 3 token: username/password/signature)

Upvotes: 1

Related Questions