iT邦幫忙

0

如何幫網站設定非預期行為?

環境
後端: php
前端: jquery(ajax) + css + html

事由
普通的「電商」功能都有,主要是有什麼「非預期」行為需要注意的?
我自己想到的是當按下「送出訂單」後,假設沒有了網路?總不能一直卡著

還有什麼會需要這類的處理方式?
以及能怎麼處理?
有經驗的大大可以不吝嗇分享一下嗎

newkevin iT邦高手 1 級 ‧ 2018-09-26 14:22:18 檢舉
意思是使用者送出訂單
電商收到了
然後
電商送訊息對方斷線嗎
1. 每個交易畫面 寫還剩幾個步驟 訂單才完成
2. 第一頁 可讓人選擇 (幾分無回應/斷線時 )
a.訂單作廢
b.下次登錄繼續
c.最後一頁交易完成頁面
斷線時 改用手機認證回傳確認無誤
d.......
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
Luis-Chen
iT邦新手 4 級 ‧ 2018-09-27 13:18:34
最佳解答

聽起來很像是在問說 ajax的success 跟 error 處理

如果網路斷線,ajax就會跳出error,想要讓客戶知道error就在error 寫資訊顯示在網頁上

	$.ajax({
		    type: 'POST',
		    url: 'ajax_process.php',
		    dataType: 'json',
		    data: 'data',
		    success: function (sMsg){
		        	console.log(sMsg.msg);
		    },
		    error: function (sMsg1, sMsg2){
                    
		            $('.ajax-content').html('Ajax Error');
		    }
		});
火爆浪子 iT邦研究生 1 級 ‧ 2018-10-05 14:48:52 檢舉

可以得知 ajax 回傳的字串嗎?這樣我這邊就可以重新定義「給人看的」訊息

Luis-Chen iT邦新手 4 級 ‧ 2018-10-05 15:28:19 檢舉

我的回答跟浩瀚星空大大所說的ajax的處理問題的方法一樣觀念,如果說是連線時斷線(連線應該是用ajax)那ajax就會吐出錯誤碼到瀏覽器端,而js依得到的錯誤訊息去呈現畫面(p.s 給人看的 哈哈)。

我後來回去看一下問題,你的問題需求是「電商」及「非預期」,不過我們回答的點都例子的「連線」上,浩瀚大也有講了一下其他處理方式,
「非預期」我會分為browser端跟sever端:

browser端的非預期情況我是預設為「資料為空」,表單該填的資料沒填,商品資料(價格品項)沒撈到,js在發送訂單前要先確定好傳給server端的資料(格式正確、有無值),相關的關鍵字就「表單驗證」吧

至於server端的話,因為電商的金流主要是串接金流api,情況比較單純
金流api要求的資料沒有給對,當訂單成立後是否要回饋通知(ex寄信)給browser端知道,不過結帳頁面通常是金流那邊再跑,所以如果訂單出問題(跟錢有關),金流的結帳都會回饋通知給使用者。

然後你例子中「斷線卡著」的情況應該是server端程式寫錯或是沒寫好
如:CROS 這個跟http 有關係不過處理也是在ajax上

大概是這樣吧?

火爆浪子 iT邦研究生 1 級 ‧ 2018-10-05 16:03:11 檢舉

嗯,目前想到的就是連線萬一中斷時的處理。

0

後端語言要做錯誤處理Exceptions,避免操作一半,資料不完全,
至於網路斷了,user也看不到網頁了,只能等之後連上網再提醒user,
訂單未完成。

0
小魚
iT邦大師 1 級 ‧ 2018-09-26 11:56:59

什麼叫做 沒有了網路?
這句話要定義清楚,
如果使用者端的網路斷了應該會看到404吧,
Chrome可能會看到小恐龍(不知道現在還有沒有)...

0

其實你的問題很籠統。不知道該怎麼回答你才適合你

首先,要了解的是。是否為ajax後端連動式。還是post或get式的送訂單方式。
前者來說,一般當無網路的情況下,其ajax本身就會回應一個錯誤回來。
你需要在其js上寫好對應的錯誤。並彈跳出訊息出來。而不是在那邊等。

後著來說,會比較沒有什麼處理的方式,畢竟post或get下去後就是一個切頁動作。
一個無網路的狀態下,就是會給你404或是400錯誤出來。也不需要再談什麼後續了。

我可以將我的流程大約跟你說一下。
一般來說,選商品到購物車時,其實都還未有訂單的出現。
一但從購物車中,確定要結帳號,就會先產生一個訂單。並開始進行結帳的動作。
這時訂單的狀態就是一個未結帳的狀態跟未正式下訂的狀態。

由於除了信用卡、web atm等這些可以直接線上付款確定的情況。可以立即將訂單變為「確定」及「正式下訂」的狀態。
其它就有可能是「等待付款(未付款)」及「正式下訂」

這下訂單會依情況會有7~15天的保留期。這要看業主的意思。
超過時間的訂單就得要自動變為無效單。

我要發表回答

立即登入回答