@alpa_kz

Как избежать перенаправление на сайт банка, чтоб оплатить товары на нашей стороне интернет магазина?

Мне на интернет магазин нужно установить онлайн оплату, платежную систему от epay, чтобы оплата прошла мне нужно отправить данные https://testpay.kkb.kz/jsp/process/logon.jsp, пример данных можно увидеть по ссылке, как можно избежать перенаправление, и сразу оплатить на нашем сайте, думал через AJAX
$('#form').submit(function(e) {
        e.preventDefault()
        // console.log($(this).serialize())
        $.ajax({
            url: 'https://testpay.kkb.kz/jsp/process/logon.jsp',
            method: 'POST',
            data: $(this).serialize(),
            async: true,
            success(data){
                console.log('success')
                console.log(data)
            },
            error(data){
                console.log('error')
                console.log(data)
            }
        })
    })

получить статус ответа и от этого им переотправлять нужные им данные, но выдает

Failed to load https://testpay.kkb.kz/jsp/process/logon.jsp: Redirect from 'https://testpay.kkb.kz/jsp/process/logon.jsp' to 'https://testpay.kkb.kz/jsp/process/payment.jsp?oid...' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'pay.aida.market' is therefore not allowed access.

пробовал через curl отправить
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
header("Access-Control-Allow-Headers: X-Requested-With");

require_once("kkbcsign.class.php");
$kkb = new KKBSign();
$kkb->invert();
$kkb->load_private_key("cert.prv", "1q2w3e4r");
$merchant = '<merchant cert_id="%certificate%" name="%merchant_name%"><order order_id="%order_id%" amount="%amount%" currency="%currency%"><department merchant_id="%merchant_id%" amount="%amount%"/></order></merchant>';
$merchant = preg_replace('/\%certificate\%/', 		MERCHANT_CERT_ID , 	$merchant);
$merchant = preg_replace('/\%merchant_name\%/', 	MERCHANT_NAME , 	$merchant);
$merchant = preg_replace('/\%order_id\%/', 			ORDER_ID, 			$merchant);
$merchant = preg_replace('/\%currency\%/', 			CURRENCY, 			$merchant);
$merchant = preg_replace('/\%merchant_id\%/', 		MERCHANT_ID, 		$merchant);
$merchant = preg_replace('/\%amount\%/', 			AMOUNT,				$merchant);
$merchant_sign = '<merchant_sign type="RSA">'.$kkb->sign64($merchant).'</merchant_sign>';
$xml = "<document>".$merchant.$merchant_sign."</document>";
$xml = base64_encode($xml);
$Signed_Order_B64 = $xml;
$email = 'aida@mail.ru';  
$Language = "rus";
$BackLink = "https://testpay.kkb.kz/jsp/client/pay.jsp";
$PostLink = "http://pay.aida.market/postlink";
$FailureBackLink = "https://testpay.kkb.kz/jsp/client/pay.jsp";
$template = "default.xsl";


function request($url, $postdata = null, $cookiefile = 'tmp/cookie.txt'){

	$ch = curl_init($url);
	curl_setopt($ch, CURLOPT_CERTINFO, true);
	curl_setopt($ch, CURLOPT_COOKIESESSION, true);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
	curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3");
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile);
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

	if($postdata){
		curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata );
	}

	$html = curl_exec($ch);
	$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
	echo $code;
	if(!$html ){
		$error = curl_error($ch).'('.curl_errno($ch).')';
		echo '---error----';
		echo $error;
	}
	curl_close($ch);
	return $html;
}

file_put_contents("tmp/cookie.txt",'');
request('https://testpay.kkb.kz/jsp/process/logon.jsp',"Signed_Order_B64=".$Signed_Order_B64."&email=aida@mail.ru&Language=rus&BackLink=https://testpay.kkb.kz/jsp/client/pay.jsp&PostLink=http://pay.aida.market/postlink&FailureBackLink=https://testpay.kkb.kz/jsp/client/pay.jsp&template=default.xsl");
echo $html;

302---error---- OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0(56)
Почему такая ошибка? помогите решить такую проблемы? может сталкивался кто-то с такой задачей? просто не хотелось бы перенаправлять клиентов на сайт банка(? мне важно узнать на какой сайт он меня перенаправил на правильный или на тот что у меня в данных ошибка, если перенаправил на сайт с правильными данными тогда, сделать последний шаг провести оплату , помогите кто чем может не могу разобраться(
  • Вопрос задан
  • 341 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы