php提取微信賬單的有效信息
最近要做支付對賬,即檢查第三方支付與數(shù)據(jù)庫中賬單是否一一對應,涉及到微信對賬單的處理,微信賬單接口返回為一個字符串類似如下結(jié)果:
程序需要實現(xiàn)的功能就是從這個字符串從提取每一筆訂單中的有效信息,參考代碼如下:
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; }
主要的思路是微信賬單返回的結(jié)果格式是固定的,可以用 '`' 實現(xiàn)字符串的分割,然后每 24 個 字段為一個訂單的描述信息,最后 6 個字段為賬單的匯總信息。因此通過 for 循環(huán)就可以遍歷整個賬單,代碼里面只取了我需要的字段,如果還需要其它的字段可按照此格式自行加入即可。
代碼還有以下幾點有待完善:
1. 沒有考慮字符串特別大的情況,可能會導致 php 進程分配的內(nèi)存耗盡,對于普通的商戶訂單,每天成交量不是特別大的情形是夠用的。
2. 默認了微信返回的格式是固化的,其實可以根據(jù)微信返回的字符串頭和尾進行動態(tài)的匹配。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Laravel 自動轉(zhuǎn)換長整型雪花 ID 為字符串的實現(xiàn)
這篇文章主要介紹了Laravel 自動轉(zhuǎn)換長整型雪花 ID 為字符串的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-10-10PHP學習記錄之面向?qū)ο螅∣bject-oriented programming,OOP)基礎【接口、抽象類、靜態(tài)方法等
這篇文章主要介紹了PHP學習記錄之面向?qū)ο螅∣bject-oriented programming,OOP)基礎,結(jié)合實例形式分析了PHP面向?qū)ο蟪绦蛟O計中接口、抽象類、靜態(tài)方法等相關概念、原理、用法與操作注意事項,需要的朋友可以參考下2019-12-12