Мне на интернет магазин нужно установить онлайн оплату, платежную систему от 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)
Почему такая ошибка? помогите решить такую проблемы? может сталкивался кто-то с такой задачей? просто не хотелось бы перенаправлять клиентов на сайт банка(? мне важно узнать на какой сайт он меня перенаправил на правильный или на тот что у меня в данных ошибка, если перенаправил на сайт с правильными данными тогда, сделать последний шаг провести оплату , помогите кто чем может не могу разобраться(