private function callAPI($request, $URL, $SerializeOption = null) { $response = null; $isError = false; $reqObject = $request; try { switch (X_PAYPAL_REQUEST_DATA_FORMAT) { case "JSON": $request = JSONEncoder::Encode($request); $response = parent::callWebService($request, $URL); break; case "SOAP11": $request = SoapEncoder::Encode($request, $SerializeOption); $response = parent::call($request, $URL); break; case "XML": $request = XMLEncoder::Encode($request, $SerializeOption); $response = parent::callWebService($request, $URL); break; } if (X_PAYPAL_RESPONSE_DATA_FORMAT == 'XML' || X_PAYPAL_RESPONSE_DATA_FORMAT == 'JSON') { switch (X_PAYPAL_RESPONSE_DATA_FORMAT) { case "JSON": $strObjName = get_class($reqObject); $strObjName = str_replace('Request', 'Response', $strObjName); $response = JSONEncoder::Decode($response, $isError, $strObjName); break; case "XML": $response = XMLEncoder::Decode($response, $isError); break; } if ($isError) { $this->isSuccess = 'Failure'; $this->setLastError($response); $response = null; } else { $this->isSuccess = 'Success'; } } } catch (Exception $ex) { throw new FatalException('Error occurred in callAPI method'); } return $response; }
private function callAPI($request, $URL, $SerializeOption = null) { $response = null; $isError = false; $reqObject = $request; try { // REQUEST_DATA_FORMAT: JSON $request = JSONEncoder::Encode($request); $response = parent::callWebService($request, $URL, ''); // RESPONSE_DATA_FORMAT: JSON $strObjName = get_class($reqObject); $strObjName = str_replace('Request', 'Response', $strObjName); $response = JSONEncoder::Decode($response, $isError, $strObjName); // Si hay algun error con el encoder if ($isError) { $this->isSuccess = 'Failure'; $this->setLastError($response); $response = null; } else { $this->isSuccess = 'Success'; } } catch (Exception $ex) { die('Error occurred in callAPI method'); } return $response; }
function &call($method, &$params, $namespace = false, $soapAction = false) { // Create the empty security header if using permissioning, pass the auth token, auth signature, auth timestamp as httpheader if (!empty($this->_profile->_authSignature)) { global $authstringvar; $authstringvar = CallerServices::buildAuthString($this->_profile->_authToken, $this->_profile->_authSignature, $this->_profile->_authTimestamp); $this->addHeader($rc = new SOAP_Header('RequesterCredentials', 'struct', array(new SOAP_Value('{urn:ebay:apis:eBLBaseComponents}Credentials', 'struct', $tmp, array('xmlns:ebl' => 'urn:ebay:apis:eBLBaseComponents'))), 1, array('xmlns' => 'urn:ebay:api:PayPalAPI'))); } else { $this->addHeader($rc = new SOAP_Header('RequesterCredentials', 'struct', array(new SOAP_Value('{urn:ebay:apis:eBLBaseComponents}Credentials', 'struct', array(new SOAP_Value('{urn:ebay:apis:eBLBaseComponents}Username', '', $this->_profile->getAPIUsername()), new SOAP_Value('{urn:ebay:apis:eBLBaseComponents}Password', '', $this->_profile->getAPIPassword()), new SOAP_Value('{urn:ebay:apis:eBLBaseComponents}Signature', '', $this->_profile->getSignature()), new SOAP_Value('{urn:ebay:apis:eBLBaseComponents}Subject', '', $this->_profile->getSubject())), array('xmlns:ebl' => 'urn:ebay:apis:eBLBaseComponents'))), 1, array('xmlns' => 'urn:ebay:api:PayPalAPI'))); } return parent::call($method, $params, $namespace, $soapAction); }
public function purchase() { // Note, we used to add extensions/ to include_path here, that should either // be standardized in Loader or we need to load more files here to make // up for whatever the PayPal code would otherwise try to load require_once 'extensions/PayPal.php'; require_once 'extensions/PayPal/Profile/Handler/Array.php'; require_once 'extensions/PayPal/Profile/API.php'; require_once 'extensions/PayPal/Type/DoDirectPaymentRequestType.php'; require_once 'extensions/PayPal/Type/DoDirectPaymentRequestDetailsType.php'; require_once 'extensions/PayPal/Type/DoDirectPaymentResponseType.php'; // Add all of the types require_once 'extensions/PayPal/Type/BasicAmountType.php'; require_once 'extensions/PayPal/Type/PaymentDetailsType.php'; require_once 'extensions/PayPal/Type/AddressType.php'; require_once 'extensions/PayPal/Type/CreditCardDetailsType.php'; require_once 'extensions/PayPal/Type/PayerInfoType.php'; require_once 'extensions/PayPal/Type/PersonNameType.php'; require_once 'extensions/PayPal/CallerServices.php'; $environment = $this->live ? 'live' : 'sandbox'; $dp_request = new DoDirectPaymentRequestType(); $OrderTotal = new BasicAmountType(); $OrderTotal->setattr('currencyID', 'USD'); $OrderTotal->setval($this->amount, 'iso-8859-1'); $PaymentDetails = new PaymentDetailsType(); $PaymentDetails->setOrderTotal($OrderTotal); $shipTo = new AddressType(); $shipTo->setName($this->firstName . ' ' . $this->lastName); $shipTo->setStreet1($this->address1); $shipTo->setStreet2($this->address2); $shipTo->setCityName($this->city); $shipTo->setStateOrProvince($this->state); $shipTo->setCountry('US'); $shipTo->setPostalCode($this->zip); $PaymentDetails->setShipToAddress($shipTo); $dp_details = new DoDirectPaymentRequestDetailsType(); $dp_details->setPaymentDetails($PaymentDetails); // Credit Card info $card_details = new CreditCardDetailsType(); $card_details->setCreditCardType($this->creditCardType); $card_details->setCreditCardNumber($this->creditCardNumber); $card_details->setExpMonth($this->expirationMonth); $card_details->setExpYear($this->expirationYear); $card_details->setCVV2($this->cvv2Number); $payer = new PayerInfoType(); $person_name = new PersonNameType(); $person_name->setFirstName($this->firstName); $person_name->setLastName($this->lastName); $payer->setPayerName($person_name); $payer->setPayerCountry('US'); $payer->setAddress($shipTo); $card_details->setCardOwner($payer); $dp_details->setCreditCard($card_details); $dp_details->setIPAddress($_SERVER['SERVER_ADDR']); $dp_details->setPaymentAction('Sale'); $dp_request->setDoDirectPaymentRequestDetails($dp_details); $handler = ProfileHandler_Array::getInstance(array('username' => $this->apiUsername, 'certificateFile' => null, 'subject' => null, 'environment' => $environment)); $pid = ProfileHandler::generateID(); $profile = new APIProfile($pid, $handler); $profile->setAPIUsername($this->apiUsername); $profile->setAPIPassword($this->apiPassword); $profile->setSignature($this->apiSignature); $profile->setEnvironment($environment); $caller = new CallerServices($profile); $response = $caller->DoDirectPayment($dp_request); if (PayPal::isError($response)) { Site::getPage()->addWarning($response->message); return false; } if ($response->Ack == 'Success') { return true; } if (is_array($response->Errors)) { foreach ($response->Errors as $error) { Site::getPage()->addWarning($error->LongMessage); } } else { Site::getPage()->addWarning($response->Errors->LongMessage); } return false; }