綠界物流串接問題

Alan
各位前輩,小弟是新手設計師,最近在串接綠界的便利商店取貨時發現有個重大的問題無法解決,我用js開啟一個新視窗然後選擇便利商店選擇,選完再用js關閉並取回資料,以為沒問題,上線後才發現,大部份的手機都沒問題,但在少部份的手機裡無法關閉視窗取回資料,好像是被手機封鎖該段程式了,請各位前輩幫幫忙,我找不出是那裡出錯了:
流程是:
1-點選連結開啟選擇據點視窗(這裡沒問題)
2-選擇便利商店(這裡沒問題)
3-選擇完成列出便利商店(這裡沒問題)
4-關閉視窗並把商店資訊帶回網站(就是這裡,不能關閉,值也抓不回來)
[code]
//以下步驟四的程式碼

<HEAD>
<script src="../../../js/jquery-3.1.0.min.js"></script>
<script>
function closeNew(){ window.opener.closeNew(); }

function closewin(){
var p1 = '<?=$_POST["MerchantID"]?>';
var p2 = '<?=$_POST["MerchantTradeNo"]?>';
var p3 = '<?=$_POST["LogisticsSubType"]?>';
var p4 = '<?=$_POST["CVSStoreID"]?>';
var p5 = '<?=$_POST["CVSStoreName"]?>';
var p6 = '<?=$_POST["CVSAddress"]?>';
var p7 = '<?=$_POST["CVSTelephone"]?>';
var p8 = '<?=$_POST["CVSOutSide"]?>';
var p9 = '<?=$_POST["ExtraData"]?>';
window.opener.SetCounseling(p1,p2,p3,p4,p5,p6,p7,p8,p9);
}

/**/
//自動跳轉
function ChangeTime() {
var time;
time = $("#time").text();
time = parseInt(time);
time--;

if (time <= 0) {
closewin();
} else {
$("#time").text(time);
setTimeout(ChangeTime, 1000);
}
}

$(function () {
setTimeout(ChangeTime, 1000);
});

</script>
</HEAD>
<body>
<p>&nbsp;</p>
<div style="width:100%;text-align:center;">


</div>

<div style="padding-top:50px; width:100%;text-align:center;"><span id="time" style="color:#FFF;">0</span> 資料傳送中~<!-- 秒鐘自動關閉頁面--></div>

</BODY>

[/code]



最有價值解答

P陳
這種問題 直接問綠界最快了,
因為連上後就是他們的收入來源了,他們一定會很熱心協助的。
浩瀚星空
用 window.open 機制要很小心。
它是屬於「彈跳視窗」的一種。

有時第一次運行是需要user許可的。
如果user不許可的話。就不會讓你運行。

這邊剛好也給你跟你一樣情況的案例。
因為你是開視窗後,過幾秒再導回/關閉你的頁面。

這時候很容易被忽略出現彈跳視窗授權的警告。畢竟它就算出現了。
也會因為你將其關閉而看不到了。

我記得綠界有提供取得超商資料的api機制。
如果有後端程式運行的話。最好還是利用api去取得。
js的取得方式一般是提供給一頁式或是沒有後端程式運行的人用的才對。

請詳細看綠界的api。一定有提供的。
回到頂部