function testAllowedTypesShouldAllHaveSchema() { $missingSchemas = array(); foreach (TransactionRequest::getAllowedTypes() as $type) { $file = JsonSchemaValidator::schemaPathFor($type); if (!file_exists($file)) { $missingSchemas[] = $type; } } $this->assertEqual(0, sizeof($missingSchemas), "missing schemas for Transaction types: " . join($missingSchemas, ', ')); }
/** * This function does the payment * * @return string the error message if any * @public */ function doDirectPayment(&$params) { // TOKEN needed to send transaction data $token = "TEST"; // Create new Transaction Request $creditCardRequest = new TransactionRequest(); // Apply Token $creditCardRequest->setAccountToken($token); // No Recurring Payments for now if ($params['is_recur'] == true) { CRM_Core_Error::fatal(ts('PayMover - recurring payments not implemented')); } /* -- CHARGE TOTAL -- */ $chargeTotal = $params['amount']; if ($chargeTotal != "") { if (!$creditCardRequest->setChargeTotal($chargeTotal)) { $error[] = ts($creditCardRequest->getError()); } } /* -- EMAIL -- */ $billEmail = $params['email']; if ($billEmail != "") { if (!$creditCardRequest->setBillEmail($billEmail)) { $error[] = ts($creditCardRequest->getError()); } } /* -- CHARGE TYPE -- */ $chargeType = "SALE"; if ($chargeType != "") { if (!$creditCardRequest->setChargeType($chargeType)) { $error[] = ts($creditCardRequest->getError()); } } /* -- CARD NUMBER -- */ $creditCardNumber = $params['credit_card_number']; if ($creditCardNumber != "") { if (!$creditCardRequest->setCreditCardNumber($creditCardNumber)) { $error[] = ts($creditCardRequest->getError()); } } /* -- SECURITY CODE -- */ $creditCardVerificationNumber = $params['cvv2']; if ($creditCardVerificationNumber != "") { if (!$creditCardRequest->setCreditCardVerificationNumber($creditCardVerificationNumber)) { $error[] = ts($creditCardRequest->getError()); } } /* -- EXPERATION MONTH -- */ $expireMonth = $params['month']; if ($expireMonth != "") { if (!$creditCardRequest->setExpireMonth($expireMonth)) { $error[] = ts($creditCardRequest->getError()); } } /* -- EXPERATION YEAR -- */ $expireYear = $params['year']; if ($expireYear != "") { if (!$creditCardRequest->setExpireYear($expireYear)) { $error[] = ts($creditCardRequest->getError()); } } /* -- BILLING FIRST NAME -- */ $billFirstName = $params['first_name']; if ($billFirstName != "") { if (!$creditCardRequest->setBillFirstName($billFirstName)) { $error[] = ts($creditCardRequest->getError()); } } /* -- BILLING MIDDLE NAME -- */ if (strlen($params['middle_name']) > 0) { $billMiddleName = $params['middle_name']; if ($billMiddleName != "") { if (!$creditCardRequest->setBillMiddleName($billMiddleName)) { $error[] = ts($creditCardRequest->getError()); } } } /* -- BILLING LAST NAME -- */ $billLastName = $params['last_name']; if ($billLastName != "") { if (!$creditCardRequest->setBillLastName($billLastName)) { $error[] = ts($creditCardRequest->getError()); } } /* -- STREET ADDRESS -- */ $billAddressOne = $params['street_address']; if ($billAddressOne != "") { if (!$creditCardRequest->setBillAddressOne($billAddressOne)) { $error[] = ts($creditCardRequest->getError()); } } /* -- CITY -- */ $billCity = $params['city']; if ($billCity != "") { if (!$creditCardRequest->setBillCity($billCity)) { $error[] = ts($creditCardRequest->getError()); } } /* -- COUNTRY -- */ $billCountryCode = $params['country']; if ($billCountryCode != "") { if (!$creditCardRequest->setBillCountryCode($billCountryCode)) { $error[] = ts($creditCardRequest->getError()); } } /* -- PROVINCE/STATE -- */ $billStateOrProvince = $params['state_province']; if ($billStateOrProvince != "") { if (!$creditCardRequest->setBillStateOrProvince($billStateOrProvince)) { $error[] = ts($creditCardRequest->getError()); } } /* -- POSTAL CODE -- */ $billZipOrPostalCode = $params['postal_code']; if ($billZipOrPostalCode != "") { if (!$creditCardRequest->setBillZipOrPostalCode($billZipOrPostalCode)) { $error[] = ts($creditCardRequest->getError()); } } /* -- INVOICE ID -- */ $invoiceNumber = $params['invoiceID']; if ($invoiceNumber != "") { if (!$creditCardRequest->setInvoiceNumber($invoiceNumber)) { $error[] = ts($creditCardRequest->getError()); } } /* -- ORDER ID -- */ $orderID = substr($params["invoiceID"], -9); if ($orderID != "") { if (!$creditCardRequest->setOrderID($orderID)) { $error[] = ts($creditCardRequest->getError()); } } /* -- TRANSACTION CONDITION CODE -- */ $transactionConditionCode = "5"; // SECURE ECOMMERCE if ($transactionConditionCode != "") { if (!$creditCardRequest->setTransactionConditionCode($transactionConditionCode)) { $error[] = ts($creditCardRequest->getError()); } } /* -- ORDER DESCRIPTION -- */ $orderDescription = $params['description']; if ($orderDescription != "") { if (!$creditCardRequest->setOrderDescription($orderDescription)) { $error[] = ts($creditCardRequest->getError()); } } /* -- INDUSTRY-- */ $industry = "RETAIL"; if ($industry != "") { if (!$creditCardRequest->setIndustry($industry)) { $error[] = ts($creditCardRequest->getError()); } } /* -- DO THE TRANSACTION -- */ $creditCardResponse = $creditCardRequest->doTransaction(); /* -- STORE RESPONCE -- */ $params['trxn_id'] = $creditCardResponse->GetISOCode(); $params['trxn_result_code'] = $creditCardResponse->GetResponseCode(); if ($creditCardResponse->GetResponseCode() != 1) { CRM_Core_Error::fatal(ts('<br> RESPONCE CODE: ' . $creditCardResponse->GetResponseCode() . ' <br> TOKEN: <br> ADDRESS: ' . $billAddressOne . ' <br> POSTAL CODE: ' . $billZipOrPostalCode . ' <br> CHARGE TOTAL: ' . $chargeTotal . ' <br> CHARGE TYPE: ' . $chargeType . ' <br> CC NUMBER: ' . $creditCardNumber . ' <br> CVV: ' . $creditCardVerificationNumber . ' <br> MONTH: ' . $expireMonth . ' <br> YEAR: ' . $expireYear . ' <br> INDUSTRY: ' . $industry . ' <br> ORDERID: ' . $orderID . ' <br> TCC: ' . $transactionConditionCode)); } return $params; }
function createTransactionRequest() { $transactionRequest = new TransactionRequest(); $transactionRequest->setSellerMail("*****@*****.**"); $transactionRequest->setIpSeller("127.0.0.1"); $transactionRequest->setOrderId("123456"); $transactionRequest->setBuyer(createBuyer()); $transactionRequest->setFree("Campo livre"); $transactionRequest->setFreight(10.95); $transactionRequest->setFreightType(FreightTypeEnum::E_SEDEX); $transactionRequest->setDiscount(1.2); $transactionRequest->setAddition(3); $transactionRequest->setUrlReturn("https://www.bcash.com.br/loja/retorno.php"); $transactionRequest->setUrlNotification("https://www.bcash.com.br/loja/aviso.php"); $transactionRequest->setProducts(createProduct()); $transactionRequest->setInstallments(5); $transactionRequest->setCurrency(CurrencyEnum::REAL); $transactionRequest->setAcceptedContract("S"); $transactionRequest->setViewedContract("S"); $transactionRequest->setCampaignId("123"); return $transactionRequest; }
/** * @private * @param string $action * @param string $channelToken * @param string $unique_id * @return Hypercharge\Transaction */ static function request($action, $channelToken, $unique_id) { $url = new TransactionUrl(Config::ENV_SANDBOX, $channelToken, $action); $url = $url->get() . '/' . $unique_id; $curl = new Curl(Config::getUser(), Config::getPassword()); $responseStr = $curl->xmlPost($url, ''); $responseDom = new \SimpleXMLElement($responseStr); // dummy $request = new TransactionRequest(array('transaction_type' => 'sale')); return $request->createResponse(XmlSerializer::dom2hash($responseDom)); }