我被要求幫助將snapscan集成到cs-cart中,因爲目前還沒有cs-cart的api。我爲了做outside_CC型風格snapscan&cs-cart集成
<?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);
}
?>
這種作品寫了這個代碼,它說找不到網頁,但刷新它工作正常,拉訂單號和金額跨越。 我需要的問題或幫助是如何在付款完成後將客戶退回到購物車以下訂單?它不像信用卡,它通過瀏覽器進行處理,因爲這需要移動手機。
這裏是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部分在新窗口或彈出窗口中打開,並在同一時間下單,如果有意義的話。是否有我缺少的一段代碼 –