這篇文章介紹的內容是關於這篇文章介紹的內容是關於php 處理微信賬單,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
最近要做支付對賬,即檢查第三方支付與數據庫中賬單是否一一對應,涉及到微信對賬單的處理,微信賬單接口返回為一個字串類似如下結果:
程式需要實現的功能就是從這個字串從提取每一筆訂單中的有效信息,參考代碼如下:
function deal_wechat_return_result($reponse) { $result = array(); $reponse = str_replace(","," ",$reponse); $reponse = explode("`",$reponse); $total_order_count =( count($reponse) - 6 ) / 24; for($i = 0; $i< $total_order_count; $i++) { $base_index = 24 * $i; $result[$reponse[$base_index + 7]] = array( 'wechat_order_no' => $reponse[$base_index + 6], 'order_count' => $reponse[$base_index + 13], 'order_discount' => $reponse[$base_index + 23] ); } return $result; }
主要的想法是微信賬單返回的結果格式是固定的,可以用'`' 實現字符串的分割,然後每24 個字段為一個訂單的描述信息,最後6 個字段為賬單的匯總信息。因此透過 for 循環就可以遍歷整個帳單,代碼裡面只取了我需要的字段,如果還需要其它的字段可按照此格式自行加入即可。
程式碼還有以下幾點有待完善:
1. 沒有考慮字串特別大的情況,可能會導致php 進程分配的記憶體耗盡,對於普通的商家訂單,每天成交量不是特別大的情形是夠用的。
2. 預設了微信回傳的格式是固化的,其實可以根據微信傳回的字串頭和尾進行動態的比對。
相關推薦:
以上是php 處理微信帳單的詳細內容。更多資訊請關注PHP中文網其他相關文章!