[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Tinkoff. Редирект на страницу оплаты
ArPanda
Есть сайт wonderwander-shop.com на cms cs cart. На сайте 2 языка: русский и английский. При оплате заказа картой редиректит на русскую страницу оплаты тинькофф с обеих версий. Если в tinkoff.php присвоить language значение en, то с обеих версий будет редиректить на английскую. Как я понял, нужно зареквестить язык и добавить условие, но php знаком поверхностно, поэтому не знаю, как это прописать. Может кто помочь? Пишите, что нужно, скину.
<?php

use Tygh\Registry;

if (!defined('BOOTSTRAP')) { die('Access denied'); }
// define('__PATH','/var/www/vhosts/wonderwander-shop.com/httpdocs/app/payments/tinkoff/');
define('__PATH',dirname(__FILE__) . '/tinkoff/');

file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' ' ."\r\n",FILE_APPEND);

/*


$order_id = '';
if(isset($_REQUEST['OrderId'])){
$order_id = (int) $_REQUEST['OrderId'];
}
if(isset($_REQUEST['Success'])){
$success = $_REQUEST['Success'];
}

file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' success ' .$success ."\r\n",FILE_APPEND);


if($success){

file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' redirect ' .$order_id ."\r\n",FILE_APPEND);
// $order_info = fn_get_order_info($order_id);

print_r($auth);

// echo " ";
// fn_order_placement_routines('route', $order_id);

// print_r(Tygh::$app['session']['cart']);
// fn_clear_cart($_SESSION['cart']);
// fn_clear_cart(Tygh::$app['session']['cart']);
// header('Location:' . '
https://wonderwander-shop.com/index.php?dispatch=checkout.complete&order_id='.$order_id);
die('...');
}
*/









require_once dirname(__FILE__) . '/tinkoff/TinkoffMerchantAPI.php';
require_once dirname(__FILE__) . '/tinkoff/Debug.php';

// file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' libs ' ."\r\n",FILE_APPEND);

if (!defined('BOOTSTRAP')) { die('Access denied'); }


// file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' BOOTSTRAP ' ."\r\n",FILE_APPEND);

if (defined('PAYMENT_NOTIFICATION')) {


file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' PAYMENT_NOTIFICATION ' ."\r\n",FILE_APPEND);


if(isset($_REQUEST['OrderId'])){
$order_id = (int) $_REQUEST['OrderId'];
}
else{
$order_id = $_COOKIE['tinkoff_order_id'];
}

$order_info = fn_get_order_info($order_id);
$processor_data = $order_info['payment_method'];

if ($mode == 'notification') {
$_POST['Password'] = $processor_data['processor_params']['secret_key'];
ksort($_POST);
$sorted = $_POST;
$original_token = $sorted['Token'];
unset($sorted['Token']);
$values = implode('', array_values($sorted));
$token = hash('sha256', $values);

// //log
$log = $_POST;
$log['token'] = $token;
$log['original_token'] = $original_token;
file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' ' . json_encode($log)."\r\n",FILE_APPEND);

if($token == $original_token){
if($_POST['Status'] == 'AUTHORIZED' && $order_info['status'] == 'P'){
file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' OK1'."\r\n",FILE_APPEND);
die('OK');
}
switch ($_POST['Status']) {
case 'AUTHORIZED': $order_status = 'O'; break; /*Деньги на карте захолдированы. Корзина очищается.*/
case 'CONFIRMED': $order_status = 'P'; break; /*Платеж подтвержден.*/
case 'CANCELED': $order_status = 'I'; break; /*Платеж отменен*/
case 'REJECTED': $order_status = 'F'; break; /*Платеж отклонен.*/
case 'REVERSED': $order_status = 'D'; break; /*Платеж отменен*/
case 'REFUNDED': $order_status = 'I'; break; /*Произведен возврат денег клиенту*/
}
if(!isset($order_status)){
file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' NOTOK1'."\r\n",FILE_APPEND);
die('NOTOK');
}
fn_change_order_status($order_id, $order_status);
if($order_status == 'P'){
$pp_response = array();
$pp_response['order_status'] = $order_status;
$pp_response['reason_text'] = 'Success payment';
// $pp_response['transaction_id'] = isset($_POST['paymentId']) ? $_POST['paymentId'] : '';
$pp_response['transaction_id'] = isset($_POST['PaymentId']) ? $_POST['PaymentId'] : '';
file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' fn_finish_payment '. $pp_response['transaction_id']."\r\n",FILE_APPEND);
fn_finish_payment($order_id, $pp_response);
}
file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' OK2'."\r\n",FILE_APPEND);
die('OK');
}
else{
file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' NOTOK2'."\r\n",FILE_APPEND);
die('NOTOK');
}
}

elseif ($mode == 'success' || $mode == 'failed') {
file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' fn_order_placement_routines1'."\r\n",FILE_APPEND);
fn_order_placement_routines('route', $order_id, false);
}

}
else {

file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' NO PAYMENT_NOTIFICATION' ."\r\n",FILE_APPEND);

$order_info = fn_get_order_info($order_id);
$arrFields = array(
'OrderId' => $order_info['order_id'],
'Amount' => $order_info['total'] * 100,
'DATA' => 'Email='.$order_info['email'],
);


$Tinkoff = new TinkoffMerchantAPI( $processor_data['processor_params']['merchant_id'], $processor_data['processor_params']['secret_key'], $processor_data['processor_params']['gateway'] );
$request = $Tinkoff->buildQuery('Init', $arrFields);
$request = json_decode($request);
setcookie('tinkoff_order_id', $order_id, 0, '/');
setcookie('tinkoff_redirect', (isset($_SERVER['HTTPS']) ? 'https://' : 'http://').$_SERVER['HTTP_HOST'].'/index.php?dispatch=payment_notification.success&payment=tinkoff', 0, '/');
if(isset($request->PaymentURL)){
fn_change_order_status($order_id, 'O');
file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' redirect '.$order_id . ' ' . $request->PaymentURL ."\r\n",FILE_APPEND);
header('Location: '. $request->PaymentURL);
}
else{
fn_change_order_status($order_id, 'F');
file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' fn_order_placement_routines2'."\r\n",FILE_APPEND);
fn_order_placement_routines('route', $order_id, false);
}
}


exit;
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.