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實現(xiàn)按時間日期進行分組統(tǒng)計方法示例
這篇文章主要給大家介紹了關于laravel如何實現(xiàn)按時間日期進行分組統(tǒng)計的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用laravel具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-03-03
升級 PHP7.1 后 openssl 解密 mcrypt AES 數(shù)據(jù)不兼容問題的處理方法
這篇文章主要介紹了升級 PHP7.1 后 openssl 解密 mcrypt AES 數(shù)據(jù)不兼容問題的處理方法,需要的朋友可以參考下2018-07-07
發(fā)款php蜘蛛統(tǒng)計插件只要有mysql就可用
有時候我們?yōu)榱丝匆幌轮┲肱佬械那闆r,不得不對日志進行大量的分析,由此想做一款插件可以記錄蜘蛛的情況。在第一次做的時候,只是記錄下蜘蛛的爬行次數(shù),不大好分析。2010-10-10
Google Voice 短信發(fā)送接口PHP開源版(2010.5更新)
Google Voice 短信發(fā)送接口PHP開源版,以前的版本不能用了,作者于2010年5月進行了更新。2010-07-07
新浪SAE云平臺下使用codeigniter的數(shù)據(jù)庫配置
這篇文章主要介紹了新浪SAE云平臺下使用codeigniter的數(shù)據(jù)庫配置,主要涉及在database.php的配置,需要的朋友可以參考下2014-06-06

