예제 #1
0
 /**
  * 
  * Processes the transaction using the specified BankCardTransaction.
  * Returns an updated BankCardTransaction containing the response information.
  * 
  * @param vo_bct    the bank card transaction
  * @return  the updated bank card transaction
  * @throws BaseCommerceClientException if invalid credentials were given or if there was an internal server error. Please contact tech support if there is an internal server error.
  * @author Rob Kurst <*****@*****.**>
  */
 public function processBankCardTransaction(BankCardTransaction $vo_bct)
 {
     $triple_des = new TripleDESService($this->is_key);
     $o_query = array();
     $o_query['gateway_username'] = $this->is_gateway_username;
     $o_query['gateway_password'] = $this->is_gateway_password;
     $o_query['payload'] = $triple_des->encrypt($vo_bct->getJSON());
     $s_query = json_encode($o_query);
     $response = $this->do_post_request('/pcms/?f=API_processBankCardTransactionV4', $s_query, $triple_des, 0);
     $vo_bct = BankCardTransaction::buildFromJSON($response["bank_card_transaction"]);
     if (array_key_exists("exception", $response) && !is_null($response['exception'])) {
         foreach ($response['exception'] as $s_key => $s_error) {
             $vo_bct->addMessage($s_error);
         }
     }
     return $vo_bct;
 }
예제 #2
0
 /**
  * Constructs and returns a BankCardTransaction object from a given JSONObject.
  * 
  * @param o_json    json containing the BankCardTransaction type
  * @return     the newly created bank card transaction
  * @author Ryan Murphy <*****@*****.**>
  * @author Steven Wright <*****@*****.**>
  * @author Rob Kurst <*****@*****.**>
  */
 static function buildFromJSON($vo_json)
 {
     $o_bct = new BankCardTransaction();
     if (array_key_exists('bank_card_transaction_billing_address', $vo_json)) {
         $o_bct->setBillingAddress(Address::buildFromJSON($vo_json['bank_card_transaction_billing_address']));
     }
     if (array_key_exists('bank_card_transaction_name', $vo_json)) {
         $o_bct->setCardName($vo_json['bank_card_transaction_name']);
     }
     if (array_key_exists('token', $vo_json)) {
         $o_bct->setToken($vo_json['token']);
     }
     if (array_key_exists('bank_card_transaction_card_number', $vo_json)) {
         $o_bct->setCardNumber($vo_json['bank_card_transaction_card_number']);
     }
     if (array_key_exists('bank_card_transaction_expiration_month', $vo_json)) {
         $o_bct->setCardExpirationMonth($vo_json['bank_card_transaction_expiration_month']);
     }
     if (array_key_exists('bank_card_transaction_expiration_year', $vo_json)) {
         $o_bct->setCardExpirationYear($vo_json['bank_card_transaction_expiration_year']);
     }
     if (array_key_exists('bank_card_transaction_billing_address', $vo_json)) {
         $o_bct->setBillingAddress(Address::buildFromJSON($vo_json['bank_card_transaction_billing_address']));
     }
     if (array_key_exists('bank_card_transaction_type', $vo_json)) {
         if (gettype($vo_json['bank_card_transaction_type']) === "array") {
             $o_type = (array) $vo_json['bank_card_transaction_type'];
             if (array_key_exists('bank_card_transaction_type_name', $o_type)) {
                 $o_bct->setType($o_type['bank_card_transaction_type_name']);
             }
         } else {
             $o_bct->setType($vo_json['bank_card_transaction_type']);
         }
     }
     if (array_key_exists('bank_card_transaction_po_number', $vo_json)) {
         $o_bct->setPONumber($vo_json['bank_card_transaction_po_number']);
     }
     if (array_key_exists('bank_card_transaction_amount', $vo_json)) {
         $o_bct->setAmount($vo_json['bank_card_transaction_amount']);
     }
     if (array_key_exists('bank_card_transaction_tax_amount', $vo_json)) {
         $o_bct->setTaxAmount($vo_json['bank_card_transaction_tax_amount']);
     }
     if (array_key_exists('bank_card_transaction_tip_amount', $vo_json)) {
         $o_bct->setTipAmount($vo_json['bank_card_transaction_tip_amount']);
     }
     if (array_key_exists('bank_card_transaction_ip_address', $vo_json)) {
         $o_bct->setIPAddress($vo_json['bank_card_transaction_ip_address']);
     }
     if (array_key_exists('bank_card_transaction_merchant_transaction_id', $vo_json)) {
         $o_bct->setMerchantTransactionID($vo_json['bank_card_transaction_merchant_transaction_id']);
     }
     if (array_key_exists('bank_card_transaction_status', $vo_json)) {
         if (gettype($vo_json['bank_card_transaction_status']) === "array") {
             $o_status = (array) $vo_json['bank_card_transaction_status'];
             if (array_key_exists('bank_card_transaction_status_name', $o_status)) {
                 $o_bct->setStatus($o_status['bank_card_transaction_status_name']);
             }
         } else {
             $o_bct->setStatus($vo_json['bank_card_transaction_status']);
         }
     }
     if (array_key_exists('bank_card_transction_check_secure_code', $vo_json)) {
         $o_bct->setCheckSecureCode($vo_json['bank_card_transction_check_secure_code']);
     }
     if (array_key_exists('bank_card_transaction_response_message', $vo_json)) {
         $o_bct->setResponseMessage($vo_json['bank_card_transaction_response_message']);
     }
     if (array_key_exists('bank_card_transaction_response_code', $vo_json)) {
         $o_bct->setResponseCode($vo_json['bank_card_transaction_response_code']);
     }
     if (array_key_exists('bank_card_transaction_avs_response_code', $vo_json)) {
         $o_bct->setAVSResponseCode($vo_json['bank_card_transaction_avs_response_code']);
     }
     if (array_key_exists('bank_card_transaction_cvv_response_code', $vo_json)) {
         $o_bct->setCVVResponseCode($vo_json['bank_card_transaction_cvv_response_code']);
     }
     if (array_key_exists('bank_card_transaction_card_cvv2', $vo_json)) {
         $o_bct->setCardCVV2($vo_json['bank_card_transaction_card_cvv2']);
     }
     if (array_key_exists('bank_card_transaction_authorization_code', $vo_json)) {
         $o_bct->setAuthorizationCode($vo_json['bank_card_transaction_authorization_code']);
     }
     if (array_key_exists('bank_card_transaction_id', $vo_json)) {
         $o_bct->setTransactionID($vo_json['bank_card_transaction_id']);
     }
     if (array_key_exists('bank_card_transaction_verify_complete_url', $vo_json)) {
         $o_bct->setVerifyCompleteURL($vo_json['bank_card_transaction_verify_complete_url']);
     }
     if (array_key_exists('bank_card_transaction_verify_url', $vo_json)) {
         $o_bct->setVerifyURL($vo_json['bank_card_transaction_verify_url']);
     }
     if (array_key_exists("bank_card_transaction_encrypted_track_data", $vo_json)) {
         $o_bct->setEncryptedTrackData($vo_json['bank_card_transaction_encrypted_track_data']);
     }
     if (array_key_exists('bank_card_transaction_recurring_indicator', $vo_json)) {
         $o_bct->setRecurringIndicator($vo_json['bank_card_transaction_recurring_indicator']);
     }
     if (array_key_exists('bank_card_transaction_settlement_batch_id', $vo_json)) {
         $o_bct->setSettlementBatchID($vo_json['bank_card_transaction_settlement_batch_id']);
     }
     if (array_key_exists('bank_card_transaction_settlement_date', $vo_json)) {
         $o_bct->setSettlementDate(date("m/d/Y H:i:s", strtotime($vo_json['bank_card_transaction_settlement_date'])));
     }
     if (array_key_exists('bank_card_transaction_creation_date', $vo_json)) {
         $o_bct->setCreationDate(date("m/d/Y H:i:s", strtotime($vo_json['bank_card_transaction_creation_date'])));
     }
     if (array_key_exists("bank_card_transaction_custom_field1", $vo_json)) {
         $o_bct->setCustomField1($vo_json["bank_card_transaction_custom_field1"]);
     }
     if (array_key_exists("bank_card_transaction_custom_field2", $vo_json)) {
         $o_bct->setCustomField2($vo_json["bank_card_transaction_custom_field2"]);
     }
     if (array_key_exists("bank_card_transaction_custom_field3", $vo_json)) {
         $o_bct->setCustomField3($vo_json["bank_card_transaction_custom_field3"]);
     }
     if (array_key_exists("bank_card_transaction_custom_field4", $vo_json)) {
         $o_bct->setCustomField4($vo_json["bank_card_transaction_custom_field4"]);
     }
     if (array_key_exists("bank_card_transaction_custom_field5", $vo_json)) {
         $o_bct->setCustomField5($vo_json["bank_card_transaction_custom_field5"]);
     }
     if (array_key_exists("bank_card_transaction_custom_field6", $vo_json)) {
         $o_bct->setCustomField6($vo_json["bank_card_transaction_custom_field6"]);
     }
     if (array_key_exists("bank_card_transaction_custom_field7", $vo_json)) {
         $o_bct->setCustomField7($vo_json["bank_card_transaction_custom_field7"]);
     }
     if (array_key_exists("bank_card_transaction_custom_field8", $vo_json)) {
         $o_bct->setCustomField8($vo_json["bank_card_transaction_custom_field8"]);
     }
     if (array_key_exists("bank_card_transaction_custom_field9", $vo_json)) {
         $o_bct->setCustomField9($vo_json["bank_card_transaction_custom_field9"]);
     }
     if (array_key_exists("bank_card_transaction_custom_field10", $vo_json)) {
         $o_bct->setCustomField10($vo_json["bank_card_transaction_custom_field10"]);
     }
     if (array_key_exists("bank_card_transaction_cipher_pay_uuid", $vo_json)) {
         $o_bct->setCipherPayUUID($vo_json["bank_card_transaction_cipher_pay_uuid"]);
     }
     return $o_bct;
 }
예제 #3
0
 protected function processCreditCardTransaction($data, $as_partner = 0)
 {
     Debugger::log($data);
     $o_bct = new BankCardTransaction();
     $o_bct->setToken($data['payer_vault_id']);
     $o_bct->setType(BankCardTransaction::$XS_BCT_TYPE_SALE);
     $o_bct->setAmount($data['total_amt']);
     if (isset($data['fee_amt']) && !empty($data['fee_amt']) && isset($data['rsq_vault_id']) && !empty($data['rsq_vault_id'])) {
         $cf10val = $data['rsq_vault_id'] . "," . $data['fee_amt'];
         $o_bct->setCustomField10($cf10val);
     }
     if ($as_partner == 0) {
         $o_bcpc = new BaseCommerceClient(RENTSQUARE_MERCH_USER, RENTSQUARE_MERCH_PASS, RENTSQUARE_MERCH_KEY);
     } else {
         $o_bcpc = new BaseCommerceClient(RENTSQUARE_PARTNER_USER, RENTSQUARE_PARTNER_PASS, RENTSQUARE_PARTNER_KEY);
     }
     $o_bcpc->setSandbox(BC_SANDBOXVALUE);
     Debugger::log($o_bct);
     Debugger::log($o_bcpc);
     $o_bct = $o_bcpc->processBankCardTransaction($o_bct);
     if ($o_bct->isStatus(BankCardTransaction::$XS_BCT_STATUS_FAILED)) {
         //Transaction Failed
         return array('status' => '0', 'info' => $o_bct->getMessages());
     } else {
         if ($o_bct->isStatus(BankCardTransaction::$XS_BCT_STATUS_DECLINED)) {
             //Transaction Failed
             return array('status' => '0', 'info' => $o_bct->getMessages());
         } else {
             if ($o_bct->isStatus(BankCardTransaction::$XS_BCT_STATUS_CAPTURED)) {
                 //Transaction went through successfully
                 return array('status' => '1', 'info' => $o_bct->getTransactionID());
             }
         }
     }
 }