最近公司的專案涉及技師上門o2o服務,其中某乙個特定的技師,每天的8:30 9:00 9:30 10:00 ......20:00 這些時間點可以被預約,如果乙個使用者預約了9:00 的技師,而沒有付款,那麼9:00 9:30 10:00 這三個時間需要被鎖定置灰,即假設這三個時間點技師在服務,不能提供服務。
使用者下單的過程是這樣的:調後台介面告訴後台預約的技師姓名,**,預約的時間,上門的位址等資訊生成乙個類似12306 那樣的訂單。只要生成了乙個訂單在一定的時間內(假設30分鐘)之內可以繼續支付。
1)如果使用者在30分鐘之內完成,完成支付(不管是一氣呵成完成支付還是想中途放棄支付後來又走繼續支付的流程),生成訂單成功,並且在30分鐘內支付是不會存在任何問題的。
2)如果使用者在29分鐘55秒開始支付,或者說第2分鐘開始支付到支付寶頁面停留,停留到29分鐘55秒開始支付,在這個支付的過程中使用者需要輸入密碼,由於密碼需要時間,乙個動作慢得的使用者可能在30分鐘30秒或者31分鐘完成了支付,而系統設定的時間是30分鐘未完成支付取消訂單,取消了訂單使用者的訂單預約服務時間9:00,9:30,10:00要解除鎖定,這個技師的9:00時間點可以被別人預約,使用者在30分鐘30秒付完錢,結果使用者的訂單在30分鐘被取消了 ,使用者選擇的上門時間9:00 可以被別人預約了,後台不停的接收支付寶返回的是否付款成功的通知,付款成功後台可以接收到付款成功的tradeno(繫結某一筆訂單的唯一標示),如果付款成功了即使訂單後台取消了,又讓使用者的訂單有效,即將後台開放的預約時間9:00置灰 改為不可預約,如果在30分訂單取消,開放預約時間9:00,31分鐘30秒完成支付收回開放的預約時間,在30分開放預約時間點 到31分鐘30秒支付成功收回開放的預約時間內,沒有客戶預約該技師的9:00 時間段 ,整個系統也是沒問題的。
4)萬一有人剛好在30分開放預約到31分30秒收回預約這段1分半種內 ,這1分半鐘,9:00時間段是可以預約的,有另外的客戶預約了該技師下單成功並且也是預約的是9:00,到支付寶完成支付,另外的客戶只要在1.5分鐘內下單後面再完成支付,比如5分鐘之後再支付,預約依然可以成功的。就會造成9:00 的時間段被兩個人同時預約。乙個技師同時被兩個人預約到底去為誰提供服務??? 這就存在問題了。
如果可以設定超時時間就可以解決這個問題。
為了盡可能減少預約時間被鎖定的可能,決定將後台自動取消訂單的時間設定為15分鐘,不是30分鐘。
另外的解決方案:
每次使用者發布乙個訂單,給技師乙個推送,技師超過了15分鐘沒預約去和預約人溝通,是否取消訂單,要麼付款要麼取消,付款了訂單有效,沒付款技師取消訂單,取消了訂單9:00 9:30 10:00 時間解除鎖定(時間解除鎖定,要麼讓技師自己排上,要麼後台發現取消了訂單自動解鎖)這樣人工干預貌似簡單
缺點:使用者體驗不好,使用者只是下個單試試,技師就得打**,還得給技師發推送,即打擾技師又打擾使用者
優點目前還沒分析出來。
微信支付和支付寶支付
一 先copy下寫給後台的文件 支付寶 互動流程詳見 客戶端 android 呼叫的快捷支付介面如下 該介面需要傳入兩個引數 第二個引數 isshowpayloading 是ui方面的設定,與後台無關。第乙個引數 orderinfo 需要 後台伺服器給出 客戶端發起支付請求需要之前 需要 商戶伺服器...
微信支付 支付寶支付
二 移動端支付寶支付 weixinpay data else if document.attachevent else onbridgeready function res vm.number null vm.router.go 1 vm.base url index.html depositres...
微信支付寶支付
備忘,如果有看到的小夥伴,希望能幫助到你 測試的時候一定要用自定義基座測試 證書檔案是你的.keystore檔案路徑,在生成證書的時候一點更要記住檔案位置和密碼!實在忘記了,就最簡單粗暴的方法,重新生成把,但是在重新生成時,一定要記得把相關用到證書資訊的地方全部修改一遍。cmd開啟 生成.keyst...