static function do_payment($order_id, $description, $total, $email, $name, $dni, $card_number, $cvv, $expiration_Date, $offline_store, $is_offline)
 {
     require_once __DIR__ . '/payu/PayU.php';
     try {
         $gp_options = get_option('woocommerce_GP_PayU_offline_Gateway_settings');
         PayU::$apiKey = $gp_options['api_key'];
         PayU::$apiLogin = $gp_options['api_login'];
         PayU::$merchantId = $gp_options['merchant_id'];
         PayU::$language = SupportedLanguages::ES;
         PayU::$isTest = $gp_options['environment'] == 'yes';
         if (PayU::$isTest == true) {
             Environment::setPaymentsCustomUrl("https://stg.api.payulatam.com/payments-api/4.0/service.cgi");
             Environment::setReportsCustomUrl("https://stg.api.payulatam.com/reports-api/4.0/service.cgi");
             $name = 'APPROVED';
         } else {
             Environment::setPaymentsCustomUrl("https://api.payulatam.com/payments-api/4.0/service.cgi");
             Environment::setReportsCustomUrl("https://api.payulatam.com/reports-api/4.0/service.cgi");
         }
         if ($is_offline == false) {
             if (preg_match('/^3[47][0-9]{13}$/', $card_number)) {
                 $paymentMethod = PaymentMethods::AMEX;
             } elseif (preg_match('/^5[1-5][0-9]{14}$/', $card_number)) {
                 $paymentMethod = PaymentMethods::MASTERCARD;
             } elseif (preg_match('/^4[0-9]{12}(?:[0-9]{3})?$/', $card_number)) {
                 $paymentMethod = PaymentMethods::VISA;
             }
         } else {
             PayU::$isTest = false;
             if ($offline_store == 'oxxo') {
                 $paymentMethod = PaymentMethods::OXXO;
             } elseif ($offline_store == 'seveneleven') {
                 $paymentMethod = PaymentMethods::SEVEN_ELEVEN;
             }
         }
         $reference_code = date("Ymd His - ") . $order_id;
         $base_parameters = array(PayUParameters::ACCOUNT_ID => PayU_Middleware::$account_id, PayUParameters::REFERENCE_CODE => $reference_code, PayUParameters::DESCRIPTION => $description, PayUParameters::VALUE => $total, PayUParameters::CURRENCY => "MXN", PayUParameters::BUYER_EMAIL => $email, PayUParameters::PAYER_DNI => $dni, PayUParameters::PAYMENT_METHOD => $paymentMethod, PayUParameters::COUNTRY => PayUCountries::MX, PayUParameters::EXPIRATION_DATE => "2016-09-27T00:00:00", PayUParameters::IP_ADDRESS => $_SERVER['REMOTE_ADDR'], PayUParameters::PAYER_NAME => $name);
         $online_parameters = array(PayUParameters::CREDIT_CARD_NUMBER => $card_number, PayUParameters::CREDIT_CARD_EXPIRATION_DATE => $expiration_Date, PayUParameters::CREDIT_CARD_SECURITY_CODE => $cvv, PayUParameters::PAYER_EMAIL, $email, PayUParameters::INSTALLMENTS_NUMBER => "1", PayUParameters::COUNTRY => PayUCountries::MX, PayUParameters::DEVICE_SESSION_ID => "vghs6tvkcle931686k1900o6e1", PayUParameters::PAYER_COOKIE => "11pt1t38347bs6jc9ruv2ecpv7o2", PayUParameters::USER_AGENT => $_SERVER['HTTP_USER_AGENT']);
         if ($is_offline == false) {
             $parameters = array_merge($base_parameters, $online_parameters);
         } else {
             $parameters = $base_parameters;
         }
         $response = PayUPayments::doAuthorizationAndCapture($parameters);
         if ($response) {
             $res = array('provider' => 'payu', 'order_id' => $order_id, 'reference_code' => $reference_code, 'state' => $response->transactionResponse->state, 'transaction_id' => $response->transactionResponse->transactionId, 'code' => $response->code, 'pending_reason' => $response->transactionResponse->pendingReason, 'payment_url' => $response->transactionResponse->extraParameters->URL_PAYMENT_RECEIPT_HTML, 'response_json' => json_encode($response));
             do_action('gp_order_completed', json_encode($res));
             return $res;
         }
     } catch (PayUException $e) {
         do_action('gp_error_occurred', json_encode($e));
         throw new Exception(__('PayU. ' . $e, 'GP_PayU_offline_Gateway'));
     } catch (Exception $e) {
         do_action('gp_error_occurred', json_encode($e));
         throw new Exception(__('Generic. ' . $e, 'GP_PayU_offline_Gateway'));
     }
 }
Beispiel #2
0
 private function doPaymentCash(PaymentParams $paymentParams)
 {
     $parameters = array(PayUParameters::ACCOUNT_ID => $this->getAccountID(), PayUParameters::REFERENCE_CODE => $paymentParams->getReference(), PayUParameters::DESCRIPTION => $paymentParams->getDescription(), PayUParameters::VALUE => $paymentParams->getAmount(), PayUParameters::CURRENCY => $paymentParams->getCurrency(), PayUParameters::TAX_VALUE => $paymentParams->getTax(), PayUParameters::TAX_RETURN_BASE => $paymentParams->getTaxBase(), PayUParameters::BUYER_EMAIL => $paymentParams->getBuyerEmail(), PayUParameters::PAYER_NAME => $paymentParams->getPayerName(), PayUParameters::PAYER_DNI => $paymentParams->getPayerDni(), PayUParameters::PAYMENT_METHOD => $paymentParams->getPaymentMethod(), PayUParameters::COUNTRY => $paymentParams->getCountry(), PayUParameters::EXPIRATION_DATE => $paymentParams->getExpirationDate(), PayUParameters::IP_ADDRESS => $paymentParams->getIpAddress());
     $result = array();
     $code = 01;
     $rawResult = '';
     //Action
     try {
         $response = PayUPayments::doAuthorizationAndCapture($parameters);
         $rawResult = $response;
         if ($response) {
             $result['code'] = $code;
             $result['message'] = str_replace('{OPERACION@OPERACION}', 'PayUPayments::doAuthorizationAndCapture', $this->getMessage($code));
             $result['response']['order'] = $response->transactionResponse->orderId;
             $result['response']['transaction'] = $response->transactionResponse->transactionId;
             if ($response->transactionResponse->state == "PENDING") {
                 $status = 05;
                 $result['response']['pendingReason'] = str_replace('{RAZON@RAZON}', $response->transactionResponse->pendingReason, $this->getMessage($status));
                 $result['response']['reference'] = $response->transactionResponse->extraParameters->REFERENCE;
                 $result['response']['urlReceipt'] = '<a class="btn" id="print" href="' . $response->transactionResponse->extraParameters->URL_PAYMENT_RECEIPT_HTML . '" target="_blank">Ver Comprobante</a>';
             }
             if (isset($response->transactionResponse->responseCode)) {
                 $result['response']['responseCode'] = $response->transactionResponse->responseCode;
             }
             $logdata['invoiceid'] = $paymentParams->getReference();
             $logdata['orderid'] = $result['response']['order'];
             $logdata['transaction'] = $result['response']['transaction'];
             $logdata['status'] = $result['response']['state'];
             $logdata['paymentmethod'] = $paymentParams->getPaymentMethod();
             $logdata['message'] = $result['message'];
             $logdata['urlReceipt'] = $result['response']['urlReceipt'];
             $logdata['fecha'] = date("Y-m-d H:i:s");
             $logdata['expiracion'] = $paymentParams->getExpirationDate();
             LogData::saveData($logdata);
         }
     } catch (Exception $e) {
         $code = 00;
         $result['code'] = $code;
         $result['message'] = str_replace('{OPERACION@OPERACION}', 'PayUPayments::doAuthorizationAndCapture', $this->getMessage($code));
         $result['exception'] = $e->getMessage();
     }
     $notificacion = '';
     $notificacion .= "Parametros:\n";
     $notificacion .= json_encode($parameters);
     $notificacion .= "\n\n";
     $notificacion .= "Respuesta:\n";
     $notificacion .= json_encode($result);
     $notificacion .= "\n\n";
     $notificacion .= "Respuesta (RAW):\n";
     $notificacion .= json_encode($rawResult);
     //Result
     return $result;
 }
Beispiel #3
0
// Queries URL
Environment::setReportsCustomUrl("https://stg.api.payulatam.com/reports-api/4.0/service.cgi");
// Subscriptions for recurring payments URL
Environment::setSubscriptionsCustomUrl("https://stg.api.payulatam.com/payments-api/rest/v4.3/");
//---------------get order by order_test.php--------------------------
$filename = 'createOrderId.php';
$handle = fopen($filename, "r");
$order_id = fread($handle, filesize($filename));
fclose($handle);
$netOrder = $order_id + 1;
file_put_contents($filename, $netOrder);
//orderid = orderid + 1 in order_test.php
//---------------get order by order_test.php--------------------------
$reference = "comprame_test_" . $order_id;
$parameters = array(PayUParameters::ACCOUNT_ID => "500538", PayUParameters::REFERENCE_CODE => $reference, PayUParameters::DESCRIPTION => $reference, PayUParameters::VALUE => "20000", PayUParameters::CURRENCY => "COP", PayUParameters::BUYER_STREET => "calle 100", PayUParameters::BUYER_STREET_2 => "5555487", PayUParameters::BUYER_CITY => "Medellin", PayUParameters::BUYER_STATE => "Antioquia", PayUParameters::BUYER_COUNTRY => "CO", PayUParameters::BUYER_PHONE => "7563126", PayUParameters::BUYER_EMAIL => "*****@*****.**", PayUParameters::PAYER_NAME => "11111111111111111", PayUParameters::PAYER_DNI => "5415668464654", PayUParameters::PAYMENT_METHOD => PaymentMethods::BANK_REFERENCED, PayUParameters::COUNTRY => PayUCountries::CO, PayUParameters::EXPIRATION_DATE => date("Y-m-d\\TH:i:s", strtotime("+7 days")), PayUParameters::IP_ADDRESS => "127.0.0.1", PayUParameters::PAYER_COOKIE => "pt1t38347bs6jc9ruv2ecpv7o2", PayUParameters::USER_AGENT => "Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0");
$response = PayUPayments::doAuthorizationAndCapture($parameters);
if ($response) {
    echo "orderId:" . $response->transactionResponse->orderId . "<br>";
    echo "transactionId:" . $response->transactionResponse->transactionId . "<br>";
    echo "state:" . $response->transactionResponse->state . "<br>";
    if ($response->transactionResponse->state == "PENDING") {
        echo "pendingReason:" . $response->transactionResponse->pendingReason . "<br>";
    }
    echo "responseCode:" . $response->transactionResponse->responseCode . "<br>";
    // 	var_dump($response->transactionResponse);
    var_dump($response);
    $endTime = date("Y-m-d H:i:s");
    $content = 'startTime:' . $startTime . '-----endTime:' . $endTime . PHP_EOL;
    $content .= json_encode($response) . PHP_EOL;
    $handle = fopen('logs/bankPayments.log', "a+");
    $str = fwrite($handle, $content);
 /**
  * Do a refund transaction
  *
  * @param parameters to build the request
  * @param string $lang language of request see SupportedLanguages class
  * @return The transaction response to the request sent
  * @throws PayUException
  * @throws InvalidArgumentException
  */
 public static function doRefund($parameters, $lang = NULL)
 {
     return PayUPayments::processTransactionAlreadyAuthorizated($parameters, TransactionType::REFUND, $lang);
 }
require_once 'payulib/PayU.php';
// PayU::$apiKey = "6u39nqhq8ftd0hlvnjfs66eh8c";
// PayU::$merchantId = "500238";
// PayU::$apiLogin = "******";
PayU::$apiKey = "2abqui9uo35c2r1qt8mugjql2b";
PayU::$merchantId = "508529";
PayU::$apiLogin = "******";
PayU::$language = SupportedLanguages::ES;
PayU::$isTest = false;
$startTime = date('Y-m-d H:i:s');
// Environment::setPaymentsCustomUrl("https://stg.api.payulatam.com/payments-api/4.0/service.cgi");
// // Queries URL
// Environment::setReportsCustomUrl("https://stg.api.payulatam.com/reports-api/4.0/service.cgi");
// // Subscriptions for recurring payments URL
// Environment::setSubscriptionsCustomUrl("https://stg.api.payulatam.com/payments-api/rest/v4.3/");
Environment::setPaymentsCustomUrl("https://api.payulatam.com/payments-api/4.0/service.cgi");
Environment::setReportsCustomUrl("https://api.payulatam.com/reports-api/4.0/service.cgi");
Environment::setSubscriptionsCustomUrl("https://api.payulatam.com/payments-api/rest/v4.3/");
$parameters = array(PayUParameters::PAYMENT_METHOD => PaymentMethods::PSE, PayUParameters::COUNTRY => PayUCountries::CO);
$array = PayUPayments::getPSEBanks($parameters);
$banks = $array->banks;
echo sizeof($banks) . "<br>";
foreach ($banks as $bank) {
    echo $bank->pseCode . "--------" . $bank->description . "<br>";
}
$endTime = date("Y-m-d H:i:s");
$content = 'startTime:' . $startTime . '-----endTime:' . $endTime . PHP_EOL;
$content .= json_encode($array) . PHP_EOL;
$handle = fopen('logs/bankTransferGetBankList.log', "a+");
$str = fwrite($handle, $content);
fclose($handle);
 public function complete(Request $request)
 {
     $carts = \App\Cart::whereUserId($this->user()->id)->get();
     if (!count($carts)) {
         return redirect(route('home.index'));
     }
     $payuResponse = "";
     $order = new \App\Order();
     $order->user_id = $this->user()->id;
     $order->date_time = date('Y-m-d H:i:s');
     $order->save();
     try {
         //documentación
         //http://developers.payulatam.com/es/api/sandbox.html
         //https://github.com/mauricio067/integracion-payu-php
         require_once '../resources/libs/payu/PayU.php';
         //URL de Pagos
         \Environment::setPaymentsCustomUrl("https://stg.api.payulatam.com/payments-api/4.0/service.cgi");
         \PayU::$apiKey = "6u39nqhq8ftd0hlvnjfs66eh8c";
         \PayU::$apiLogin = "******";
         \PayU::$merchantId = "500238";
         \PayU::$language = \SupportedLanguages::ES;
         \PayU::$isTest = true;
         //Parámetros básicos de pago
         $prefix = env('APP_ENV') == 'production' ? 'PED' : 'TEST';
         $parameters = array(\PayUParameters::REFERENCE_CODE => $prefix . str_pad($order->id, 10, '0', STR_PAD_LEFT), \PayUParameters::COUNTRY => \PayUCountries::PE, \PayUParameters::ACCOUNT_ID => "500546", \PayUParameters::CURRENCY => "USD", \PayUParameters::DESCRIPTION => $this->user()->cart_description, \PayUParameters::VALUE => $this->user()->total_cart_amount);
         //Datos tarjeta de crédito
         $parameters[\PayUParameters::INSTALLMENTS_NUMBER] = 1;
         //Número de cuotas
         $parameters[\PayUParameters::PAYER_NAME] = $request->get('name', '');
         //$this->user()->name;
         $parameters[\PayUParameters::CREDIT_CARD_NUMBER] = $request->get('number', '');
         $parameters[\PayUParameters::CREDIT_CARD_EXPIRATION_DATE] = $request->get('expiration', '');
         $parameters[\PayUParameters::CREDIT_CARD_SECURITY_CODE] = $request->get('cvv', '');
         $parameters[\PayUParameters::PROCESS_WITHOUT_CVV2] = false;
         $parameters[\PayUParameters::PAYMENT_METHOD] = 'VISA';
         $payuResponse = \PayUPayments::doAuthorizationAndCapture($parameters);
         if (isset($payuResponse->code) && $payuResponse->code == 'SUCCESS') {
             if (isset($payuResponse->transactionResponse->state) && $payuResponse->transactionResponse->state == 'APPROVED') {
                 if ($this->generateTickets($order, $payuResponse)) {
                     \Mail::queue('email.order', ['order' => $order], function ($message) use($order) {
                         $message->to($order->user->email);
                     });
                     return redirect(route('user.orders'));
                 }
             } else {
                 $order->data = json_encode($payuResponse);
                 $order->status = 'error';
                 $order->save();
                 return redirect(route('checkout.error'))->with('order', $order);
             }
         } else {
             $order->data = json_encode($payuResponse);
             $order->status = 'error';
             $order->save();
             return redirect(route('checkout.error'))->with('order', $order);
         }
     } catch (\Exception $ex) {
         $order->data = $ex->getMessage();
         $order->status = 'error';
         $order->save();
         return redirect(route('checkout.error'))->with('order', $order);
     }
 }