iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 18
1

測標

tag

在訂單成立後,若選擇的物流方式是 B2C 大宗寄件,皆需先完成「測標」作業,才能夠將包裹直接送至物流中心出貨。
( 詳細測標作業流程,請以測試帳號 StageTest/test1234 登入,參考說明文件)

產生托運單(宅配)/一段標(超商取貨)格式(B2C)

測試環境:https://logistics-stage.ecpay.com.tw/helper/printTradeDocument

通過測標流程後,就可以列印貼在包裹上的出貨單了。

參數 參數名稱 型態 說明 範例
*MerchantID 廠商編號 String(10) 由綠界科技提供 2000132
*AllPayLogisticsID 綠界科技的物流交易編號 String(20) 10035
*CheckMacValue 檢查碼

stage 後台 可以看到那些單號是還沒印出托運單。
ecpay_print

'85452', '85455'兩筆都是帶配送的訂單,分別是7-11和全家。

$AL = new ECPayLogistics();
$AL->HashKey = '5294y06JbISpM5x9';
$AL->HashIV = 'v77hoKGq4kWxNNIS';
$AL->Send = array(
    'MerchantID' => '2000132',
    'AllPayLogisticsID' => '85452,85455',
    'PlatformID' => ''
);
// PrintTradeDoc(Button名稱, Form target)
$html = $AL->PrintTradeDoc('產生托運單/一段標');
echo $html;

無論要列印的托運單類型是超商取貨或是宅配,都只要把綠界單號設到'AllPayLogisticsID'裡面就可以了。

ECPayLogistics::PrintTradeDoc()一樣會產生一個 hidden form 的 submit button,送出資料到 API 後,會產生可列印的托運單。

cvs_print

但只有 CVS 支援批次列印,宅配訂單只能單筆列印。

home_print

物流/逆物流狀態通知

每當物流狀態有變更時,綠界科技會以 ServerPost 方式傳送目前物流狀態至一開始建立訂單時 'ServerReplyURL' 設定的網址。

物流狀態代碼會放在 request 中'RtnCode' 的參數,
以 7-11 B2C 為例,常見的 RtnCode 有

物流方式 統一 B2C
商品已送至物流中心 2030
商品已送達門市 2063
消費者成功取件 2067
消費者七天未取件 2074

商家在收到綠界發出的 request 後,需要 response 純文字:成功時顯示1|OK、未回傳或回傳為非 1|OK 時為失敗,若 response 為失敗,系統會隔 5 至 15 分鐘後重發訊息給商家,三次後則會延至隔天再發訊息。

逆物流訂單

測試環境:https://logistics-stage.ecpay.com.tw/express/ReturnUniMartCVS

完整退貨流程可參考此處,透過退貨 API ,可以產生一組單號 'RtnOrderNo',到ibon輸入後,即可讓買家將包裹寄回給賣家。

ibon

以 7-11 退貨流程為例:

參數 參數名稱 型態 說明 範例
*MerchantID 廠商編號 String(10) 測試編號 2000132
*GoodsAmount 商品金額 Int 1~19,999 元 500
*ServiceType 服務型態代碼 String(5) 固定帶 4(退貨不付款) 4
*SenderName 退貨人姓名 String(50) 小露露
*ServerReplyURL Server 端回覆網址 String(200) 逆物流狀態都會透過此 URL 通知。 http://test.com.tw/return.php

得到 API return 的 'RtnOrderNo'就可以讓買家到 ibon 進行退貨流程。

Array
(
    [RtnMerchantTradeNo] => 1712290200354
    [RtnOrderNo] => A31725604832
)

上一篇
Day 16 - 歐付寶 (5) 物流串接
下一篇
Day 18 - GOGOVAN (1) 介紹
系列文
使用PHP串接金流相關API30

尚未有邦友留言

立即登入留言