关于对接保税仓物流系统或支付系统推送报关单的一些琐碎的问题
最近公司的一個商城的客戶,做保稅倉發(fā)貨的功能,該功能需要對接到一些第三方的物流倉報關(guān)系統(tǒng)以及支持系統(tǒng)的報關(guān)功能,中途碰上了N多個坑,因此記錄下來,省的下次忘了
?
?
1.由于原本的系統(tǒng)并沒有計算稅費的功能,因此需要在訂單中增加稅費的計算,這時候,就需要在商品詳情里增加幾個字段:增值稅、消費稅、付稅方;
? ?增值稅一般為:16%,消費稅為15%,付稅方:?顧客/商家(如果為商家,即為保稅)?
? ?一般跨境電商的需要交一個綜合稅,計算方式為:
? ?如果消費稅=0,則為 16%*70%=11.2%
? ?如果消費稅>0,則為 ((16% + 15% )/(1-16%) )*70%
?
2.在實際的銷售過程中,有可能出現(xiàn)包稅的情況存在,如果一張訂單里出現(xiàn)包稅和不包稅的商品,則推送報關(guān)單的時候,需要拆分成兩張子訂單,付款單號可以相同,只要多張子訂單的付款金額加起來不超過該付款單的總金額即可。
? 在包稅的子訂單里,需要將商品金額中,拆分出稅金,這就是為什么上面需要存一個付稅方字段,而不是把兩個稅率都設(shè)為0的原因了
? 計算方式為:? 商品總金額=原商品總金額-((商品總金額 / 1+稅率) * 稅率)
? ? ? ? ? ? ? ? ? ? ?商品單價? ?=?新的商品總金額/商品數(shù)量? ? (可能會出現(xiàn)除不盡,建議保留小數(shù)點后4位)
? ? ? ? ? ? ? ? ? ? ?依次類推,合計數(shù)子訂單的商品金額和稅金
?
3.由于商城還可能出現(xiàn)一種情況,就是包郵/不包郵的情況。
? ?如果不包郵的情況下,其實運費=?實際運費+運費的稅金(運費*綜合稅率),
? ?如果包郵的情況下,實際上是商家替用戶支付了運費的稅費,如果實在非要算個一下稅費的話,那就將稅費平攤到商品里即可
? ?有些對接的系統(tǒng)是需要傳一個總稅金的字段,那么總稅金=運費稅金+商品稅金總和
?
4.可能還會再出現(xiàn)一種情況就是包稅不包郵,這時候需要拆單的情況下,運費可以根據(jù)兩張訂單占總商品金額的比例將運費和運費稅平攤到兩張子訂單中,在子訂單中進行分配
?
5.如果出現(xiàn)一張訂單中,都是跨境電商的商品,那么還算簡單,原有的訂單結(jié)構(gòu)不需要變化,只是在推送的時候,將訂單進行拆分推送就好,子訂單的訂單號可以簡單的在主訂單號后加一個后綴標識一下即可,如果出現(xiàn)跨境電商為分倉庫發(fā)貨或者存在跨境電商+直郵商品的情況的,則最好在下單的時候,將訂單各自拆分成訂單,由于付款單號可以共用,因此?只需要讓用戶支付一次即可
?
6.還有個很細節(jié)的地方需要特別注意的,,就是由于報關(guān)單一般是三單對碰成功之后,才可以,但,支付單是由支付平臺推送的,而訂單和物流單是另外一個物流報關(guān)系統(tǒng)推送的 ,因此這里會存在一個問題就是,物流系統(tǒng)是以什么方式取到支付單的,,根據(jù)對接這幾天的總結(jié),有兩種,一種是通過支付單號匹配,一種是通過訂單號取支付單號。。。如果是支付平臺提示報關(guān)成功,而物流平臺提示無法找到支付單的情況,,一定要使用微支付或支付寶的原始交易單號進行提交,不能用支付平臺提供的內(nèi)部支付單號提交,否則就會出現(xiàn)無法匹配到支付單的情況。
?
7.有些支付平臺會要求必須拆單推送,即不管是否存在包稅+不包稅的情況下,必須拆分成子訂單提交,因此,對接時,請跟你的支付商確定好這個問題?
?
8.如果對接的物流系統(tǒng)的商品信息推送接口過程中,,凡是有叫編號或者ID的字段的,不管是否寫著可空或者可以默認與xxx字段相等,也都直接添加在界面上,讓客戶自己去填寫,否則可能會出現(xiàn)匹配不到商品的錯誤?
?
9.由于報關(guān)是個很復雜的事情,因此說上面所說的,只是本人碰到的比較簡單的情況,,實際對接,請跟對接平臺確定好細節(jié)?
?
最后的最后,,,如果需要四舍五入的話,一定要使用?System.Math.Round(value , 2, MidpointRounding.AwayFromZero) 這個方法,并且 value必須
是decimal
?
轉(zhuǎn)載于:https://www.cnblogs.com/kugar/p/10527815.html
總結(jié)
以上是生活随笔為你收集整理的关于对接保税仓物流系统或支付系统推送报关单的一些琐碎的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。