各位做購物網站的一定會遇過
東西賣出去有七天鑑賞期
七天內如果不喜歡可以讓消費者退貨
如果商品售出的當下就開立發票
會導致退貨時還要將原發票進行作廢
一兩件還好
但只要退貨數量一多
事情就會變得很麻煩
這時,其實可以考慮商品售出七天後再開立發票
這樣就可以大幅減少因退貨而導致要將發票作廢的情況
有些網站會這樣設計:
結帳時將消費者資訊存在自己的系統
等七天後
如果沒有退貨產生
再呼叫「一般開立發票」API把發票開出來
但這個情境會有一個問題
就是你不知道消費者填的資訊有沒有錯
例如載具編號格式錯誤
很多資訊都是只有等實際呼叫開立發票API被擋下來後才知道錯了
這時還要回過頭去聯繫消費者補資料
耗時又耗力
如果擔心以上的事情發生
那就可以考慮串接綠界的「延遲開立發票」API
今天就來教大家如何使用綠界的「延遲開立發票」API
延遲開立發票API
其功能就是先將開立發票的資訊存至綠界系統
等到預定時間,綠界會自動開立發票
所以在儲存資訊的當下
你就可以知道有沒有資訊錯誤的問題
若有問題可以直接於網頁前端顯示錯誤訊息請消費者更新資訊
「延遲開立發票」API和「一般開立發票」API的參數絕大部分都一樣
只有以下幾個需要注意
主要的延遲情境與天數是由DelayFlag與DelayDay控制
Tsr可以想成是後續用來控制這張「待開立發票」的參數
接下來說明這支API對應的兩種情境
如其名,先將開立發票參數傳往綠界
等到預定時間
綠界會自動開立發票
假設,我要預訂七天後自動開立發票
{
"MerchantID": "2000132",
"RelateNumber": "20240924110947",
"CustomerID": "",
"CustomerIdentifier": "",
"CustomerName": "tester",
"CustomerPhone": "0912345678",
"CustomerEmail": "test@tt.cc",
"ClearanceMark": "",
"Print": "0",
"Donation": "0",
"LoveCode": "",
"CarrierType": "1",
"CarrierNum": "",
"TaxType": "1",
"SalesAmount": "300",
"InvoiceRemark": "發票備註",
"Items": [
{
"ItemSeq": "1",
"ItemName": "test1",
"ItemCount": "1",
"ItemWord": "pcs",
"ItemPrice": "100",
"ItemTaxType": "1",
"ItemAmount": "100"
},
{
"ItemSeq": "2",
"ItemName": "test2",
"ItemCount": "1",
"ItemWord": "pcs",
"ItemPrice": "100",
"ItemAmount": "100"
},
{
"ItemSeq": "3",
"ItemName": "test3",
"ItemCount": "1",
"ItemWord": "pcs",
"ItemPrice": "100",
"ItemAmount": "100"
}
],
"InvType": "07",
"DelayFlag": "1",
"DelayDay": "7",
"Tsr": "GO20240924110947",
"PayType": "2",
"PayAct": "ECPAY",
"NotifyURL": ""
}
可以看到和一般開立發票的參數相比
多了以下
"DelayFlag": "1", //延遲開立
"DelayDay": "7", //延遲開立天數
"Tsr": " GO20240924110947",
"PayType": "2",
"PayAct": "ECPAY",
呼叫API成功後,綠界會回傳
{
"RtnCode": 1,
"RtnMsg": "開立發票成功",
"OrderNumber": "GO20240924110947"
}
這裡的GO20240924110947就是當初送的Tsr
建議,可以直接將「RelateNumber」和「Tsr」設成一樣的值就好
這裡是為了凸顯回傳的是Tsr才故意送不一樣的值
完成後
登入綠界後台
就可以查到這張「待開立發票」囉
建立的時間是9/24
預計開立日期是七天後10/1
由上圖也可以看到
後台也是用RelateNumber查詢「待開立發票」
因此會建議將「RelateNumber」和「Tsr」設成一樣的值
這樣就算完成延遲開立發票功能囉
延遲開立發票API的另一個功能就是觸發開立發票
同樣,是先將開立發票參數傳往綠界,等到確認要開立發票時,再呼叫「觸發開立發票」API,進行觸發開立
比較特別的是還可以細分為
1.觸發當下立即開立:
這個比較好理解
就是綠界會等到你呼叫API處發後立即開立發票
//延遲註記
'DelayFlag'=>'2',
//延遲天數
'DelayDay'=>'0',
成功呼叫API後可以查到
這樣,後面只要呼叫「觸發開立發票」API
綠界就會立即開立發票囉
2.觸發完幾天後開立:
這個功能是指當你呼叫API觸發完的「幾天後」開立發票
例如,我要觸發完成的7天後自動開立發票
參數可以這樣下:
//延遲註記
'DelayFlag'=>'2',
//延遲天數
'DelayDay'=>'7',
完成後可以到後台查看
這樣,後面只要呼叫「觸發開立發票」API
綠界就會往後算七天再協助開立發票
以上就是延遲開立發票功能囉
大家可以評估哪種方式比較符合自己的網站設計
明天就是最後一天了
礙於篇幅
綠界的電子發票功能還有很多沒有提到
如果各位對於電子發票功能有甚麼問題
都可以下方留言
那我們明天見