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, ', '));
 }
Exemplo n.º 2
0
    /** 
     * 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;
    }
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
0
 /**
  * @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));
 }