Меня попросили помочь интегрировать snapscan в cs-cart, так как пока нет api для cs-cart. Я написал этот код, чтобы сделать то стиль шрифта outside_CCsnapscan & cs-cart integration
<?php
if(!defined('BOOTSTRAP')) die('Direct Access Denied');
if(!defined('PAYMENT_NOTIFICATION')) {
$mode = $processor_data['processor_params']['mode'];
if($mode) {
$form['id'] = $processor_data['processor_params']['id'];
$form['key'] = $processor_data['processor_params']['key'];
} else {
$form['id'] = 'shopalot';
$form['key'] = 'secret';
}
$form['reference'] = 'Order_'.$order_id;
$form['amount'] = number_format($order_info['total']*1, 2,'','');
$form['currency'] = 'ZAR';
$form['url'] = fn_url('payment_notification.notify?payment=snapscan&order_id='.$order_id,AREA,'current');
$form['date'] = date('d-m-Y H:i');
$form['email'] = $order_info['email'];
$checksum = $form['id'].'|'.$form['reference'].'|'.$form['amount'].'|'.$form['currency'].'|'.$form['url'].'|'.$form['date'].'|'.$form['email'].'|'.$form['key'];
$form['checksum'] = md5($checksum);
echo <<<s
<html>
<body >
<form action="https://pos.snapscan.io/qr/$form[id]?id=$order_id&amount=$form[amount]&strict=true" method="POST" >
<input name="MERCHANT_ID" type="hidden" value="$form[id]">
<input name="REFERENCE" type="hidden" value="$form[reference]">
<input name="AMOUNT" type="hidden" value="$form[amount]">
<input name="CURRENCY" type="hidden" value="ZAR">
<input name="RETURN_URL" type="hidden" value="$form[url]">
<input name="TRANSACTION_DATE" type="hidden" value="$form[date]">
<input name="EMAIL" type="hidden" value="$form[email]">
<input name="CHECKSUM" type="hidden" value="$form[checksum]">
</form>
<script>document.forms[0].submit();</script>
</body>
</html>
s;
die;
}else{
$order_id = $_REQUEST['order_id'];
$order_info = fn_get_order_info($order_id);
$payment_id = db_get_field("SELECT payment_id FROM ?:orders WHERE order_id = ?i",$order_id);
$processor_data = fn_get_payment_method_data($payment_id);
$status = $_POST['TRANSACTION_STATUS'];
if($status == 1 && fn_check_payment_script('snapscan.php',$order_id)) {
$pp_response['order_status'] = 'P';
$pp_response['reason_text'] = 'The User Completed Payment with SnapScan';
fn_update_order_payment_info($order_id,$pp_response);
fn_change_order_status($order_id,$pp_response['order_status'],'',false);
} else {
$pp_response['order_status'] = 'F';
$pp_response['reason_text'] = 'Your Payment was Unsuccessful';
fn_finish_payment($order_id,$pp_response,false);
}
fn_order_placement_routines('route',$order_id);
}
?>
Этот вид работ, это не сказать, страница не найдена, но освежить она отлично работает, потянув номер заказа и составляет в поперечнике. Мой вопрос или помощь, которые мне требуются, - как я могу вернуть клиента в cs-cart после того, как платеж сделан, чтобы разместить заказ? это не как кредитная карта, где она обрабатывается через ваш браузер, так как для этого требуется мобильный сотовый телефон.
вот информация от SnapScan
http://developer.getsnapscan.com/#overview
Я также пробовал различные варианты, как всплывающие окна, которые отлично работают, но и всплывают, если вы оплатили кредитной картой.
другой другой вариант, я думал, что делать было попытаться определить конкретный способ оплаты подобное,
{if '$SnapScan'}
<script language="javascript">
timer=setTimeout("window.open('https://pos.snapscan.io/qr/J0v26eBZ?id={$order_info.order_id}&amount={$order_info.total*100}&strict=true','','width=800,height=600')",5000)
</script>
{else}
DO NOTHING
{/if}
Пожалуйста, может кто-нибудь предложить возможное решение моей Дилема
Большое спасибо HELOstore. Я немного новичок, когда дело доходит до веб-крючков, вы могли бы направить меня в правильном направлении. Мне действительно нужно, чтобы секция snapscan открывалась в новом окне или всплывающем окне и размещала заказ одновременно, если это имеет смысл. Есть ли код, который мне не хватает? –