Created
October 23, 2013 11:12
-
-
Save xexu/7116737 to your computer and use it in GitHub Desktop.
Script to query paypal nvp api
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class Paypal { | |
/** | |
* Last error message(s) | |
* @var array | |
*/ | |
protected $_errors = array(); | |
/** | |
* API Credentials | |
* Use the correct credentials for the environment in use (Live / Sandbox) | |
* @var array | |
*/ | |
protected $_credentials = array( | |
'USER' => 'XXXXXXXXXX', | |
'PWD' => 'XXXXXXXXXX', | |
'SIGNATURE' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', | |
); | |
/** | |
* API endpoint | |
* Live - https://api-3t.paypal.com/nvp | |
* Sandbox - https://api-3t.sandbox.paypal.com/nvp | |
* @var string | |
*/ | |
protected $_endPoint = 'https://api-3t.sandbox.paypal.com/nvp'; | |
/** | |
* API Version | |
* @var string | |
*/ | |
protected $_version = '74.0'; | |
/** | |
* Make API request | |
* | |
* @param string $method string API method to request | |
* @param array $params Additional request parameters | |
* @return array / boolean Response array / boolean false on failure | |
*/ | |
public function request($method,$params = array()) { | |
$this->_errors = array(); | |
if( empty($method) ) { //Check if API method is not empty | |
$this->_errors = array('API method is missing'); | |
return false; | |
} | |
//Our request parameters | |
$requestParams = array( | |
'METHOD' => $method, | |
'VERSION' => $this->_version | |
) + $this->_credentials; | |
//Building our NVP string | |
$request = http_build_query($requestParams + $params); | |
//cURL settings | |
$curlOptions = array ( | |
CURLOPT_URL => $this->_endPoint, | |
CURLOPT_VERBOSE => 1, | |
CURLOPT_SSL_VERIFYPEER => true, | |
CURLOPT_SSL_VERIFYHOST => 2, | |
// CURLOPT_CAINFO => dirname(__FILE__) . '/cacert.pem', //CA cert file | |
CURLOPT_RETURNTRANSFER => 1, | |
CURLOPT_POST => 1, | |
CURLOPT_POSTFIELDS => $request | |
); | |
$ch = curl_init(); | |
curl_setopt_array($ch,$curlOptions); | |
//Sending our request - $response will hold the API response | |
$response = curl_exec($ch); | |
//Checking for cURL errors | |
if (curl_errno($ch)) { | |
$this->_errors = curl_error($ch); | |
curl_close($ch); | |
return false; | |
//Handle errors | |
} else { | |
curl_close($ch); | |
$responseArray = array(); | |
parse_str($response,$responseArray); // Break the NVP string to an array | |
return $responseArray; | |
} | |
} | |
} | |
$requestParams = array( | |
'PROFILEID' => 'X-XXXXXXXXXXXX', | |
); | |
$paypal = new Paypal(); | |
$response = $paypal->request('GetRecurringPaymentsProfileDetails',$requestParams); | |
die($response['STATUS']."\n"); | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment