Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 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);
 }
Esempio n. 4
0
 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;
 }