Created
October 23, 2013 11:12
-
-
Save xexu/7116737 to your computer and use it in GitHub Desktop.
Revisions
-
xexu created this gist
Oct 23, 2013 .There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,95 @@ <?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"); ?>