在訂單成立後,若選擇的物流方式是 B2C 大宗寄件,皆需先完成「測標」作業,才能夠將包裹直接送至物流中心出貨。
( 詳細測標作業流程,請以測試帳號 StageTest/test1234 登入,參考說明文件)
測試環境:https://logistics-stage.ecpay.com.tw/helper/printTradeDocument
通過測標流程後,就可以列印貼在包裹上的出貨單了。
參數 | 參數名稱 | 型態 | 說明 | 範例 |
---|---|---|---|---|
*MerchantID | 廠商編號 | String(10) | 由綠界科技提供 | 2000132 |
*AllPayLogisticsID | 綠界科技的物流交易編號 | String(20) | 10035 | |
*CheckMacValue | 檢查碼 |
從 stage 後台 可以看到那些單號是還沒印出托運單。
'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 支援批次列印,宅配訂單只能單筆列印。
每當物流狀態有變更時,綠界科技會以 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輸入後,即可讓買家將包裹寄回給賣家。
以 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
)