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')); } }
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; }
// 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); } }