感覺有點標題黨,但是有些外掛程式確實開發的不規範。
我開發的**使用的是magento 框架。但是不論什麼框架外掛程式不規範的道理應該是一樣的。
說了這麼多其實就是 支付寶非同步通知傳回的通知狀態中
trade_finished 和 trade_success 的區別(已經知道的大牛請不要嘲笑我這個剛過來開發支付模組的菜鳥了
其實 支付寶即時到帳介面的文件中也有總結狀態的說明,但是我自己認為不明確啊(應該是我理解能力太差了吧 - -!)
bug描述:開發完畢,支付等流程都正常。但是三個月後又會收到支付寶發來的非同步通知。如果沒有去明確判斷trade_finished還是
trade_success 都統一做業務處理那麼就會發生bug。
買家付款後,商家能夠收到支付寶的 trade_success 狀態的說明你開通的是即時到帳高階介面。普通的是只能收到 trade_finished 狀態的,即不能進行退款等操作。
其實普通即時到帳介面在某些外掛程式中應該都不會出現bug。因為他們就乙個 trade_finished 狀態。
實際上這裡面最重要的區別就是開通 高階即時到帳介面的商家,在買家付錢後會收到乙個 trade_success 的通知,這表示買家成功付錢,同時商家可以進行退款等操做,
之後會在三個月後支付寶再次發來通知 ,即發來trade_finished 的通知。以為者交易結束,商家不能再做退款等操作了。
它在notify 那個函式中判斷訂單成功使用了 「或」 運算子
即
if ($postdata['trade_status'] == 'trade_finished' || $postdata['trade_status'] == 'trade_success')
那麼 付款後沒什麼問題,但是三個月後買家又會收到郵件通知,以及訂單狀態又改為付完錢的狀態。
因為我們有郵件抄送給管理員的操作才發現了這個問題。
其實問題描述起來就是這麼簡單。明白了怎麼回事,解決辦法不用說應該也都知道。
但是其實還有許多人不知道或者說沒有明確意識到這裡面的差別。 出問題後去網上搜尋,就連支付寶論壇裡面還有
開發者說這兩個沒什麼區別。 重要的是當問道這兩個狀態的區別是應當具體描述出來三個月繼續傳送 trade_finished 的通知這麼乙個點。
順便提一下,支付寶文件裡面明確的在商戶業務處理注意事項中提出:
但是為什麼不點出來 三個月後會發來 trade_finished 的通知呢? (當然demo中有明確提出)
我只是覺得文件中有必要明確解釋一下。(個人建議而已)
這個同樣適用於現在版本的 支付寶無線支付介面, 你可以將買家付款 發來的非同步通知資訊列印,主要是觀察 trade_status 如果是 trade_finished
說明你沒有開通高階即時到帳介面,可以通過支付寶人工客服去修改。但要5個工作日才能改好。
提乙個問題:
使用者下單,跳轉到支付寶,登入支付寶賬戶但是不結賬。此時去個人支付寶頁面會看到在交易明細中有乙個待付款的交易。
這裡如果使用者或者商家 將訂單取消,但是使用者從這個地方付款還是可以的。、
這種問題是怎麼解決的呢?有沒有什麼介面通知支付寶這筆交易已取消呢?
支付寶支付介面開發
1.簡單點說就是呼叫支付寶那邊的介面方法,然後傳遞資料過去,之後會返回乙個是否成功的值,然後你拿到之後判斷就好了 流程說明 以android平台為例 第4步 呼叫支付介面 此訊息就是本介面所描述的開發包提供的支付物件paytask,將商戶簽名後的訂單資訊傳進pay方法喚起支付寶收銀台,訂單格式具體參...
支付寶開發流程
1.首先,支付寶商家要和支付寶第三方平台簽約。具體如何簽約支付寶開放平台會給出很詳細的關於如何簽約的文件介紹。簽約鏈結如下 2.第三方應用授權,鏈結如下 3.去文件中心,開發者入住開放平台,申請應用型別。自用型和第三方應用 4.建立應用。2.個體工商戶,您可以提供產品介紹文件或者手機demo.apk...
支付寶支付開發要點記錄
完整的走完乙個支付業務流程後,發現還是有不少需要注意的地方,為了避免時間長了忘記一些細節,這裡先對一些流程和要點進行記錄。建立支付寶賬號並登陸 建立應用 新增相應支付功能並簽約,需要營業執照 根據相應支付功能api說明進行開發,而大致的開發流程又基本如下 知之不若行之,支付api看起來比較簡單,但是...