php提取微信賬單的有效信息
最近要做支付對賬,即檢查第三方支付與數(shù)據(jù)庫中賬單是否一一對應(yīng),涉及到微信對賬單的處理,微信賬單接口返回為一個(gè)字符串類似如下結(jié)果:
程序需要實(shí)現(xiàn)的功能就是從這個(gè)字符串從提取每一筆訂單中的有效信息,參考代碼如下:
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é)果格式是固定的,可以用 '`' 實(shí)現(xiàn)字符串的分割,然后每 24 個(gè) 字段為一個(gè)訂單的描述信息,最后 6 個(gè)字段為賬單的匯總信息。因此通過 for 循環(huán)就可以遍歷整個(gè)賬單,代碼里面只取了我需要的字段,如果還需要其它的字段可按照此格式自行加入即可。
代碼還有以下幾點(diǎn)有待完善:
1. 沒有考慮字符串特別大的情況,可能會導(dǎo)致 php 進(jìn)程分配的內(nèi)存耗盡,對于普通的商戶訂單,每天成交量不是特別大的情形是夠用的。
2. 默認(rèn)了微信返回的格式是固化的,其實(shí)可以根據(jù)微信返回的字符串頭和尾進(jìn)行動(dòng)態(tài)的匹配。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
php導(dǎo)出word格式數(shù)據(jù)的代碼實(shí)例
這篇文章主要介紹了php導(dǎo)出word格式數(shù)據(jù)的代碼實(shí)例,有需要的朋友可以參考一下2013-11-11
laravel實(shí)現(xiàn)按時(shí)間日期進(jìn)行分組統(tǒng)計(jì)方法示例
這篇文章主要給大家介紹了關(guān)于laravel如何實(shí)現(xiàn)按時(shí)間日期進(jìn)行分組統(tǒng)計(jì)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用laravel具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
升級 PHP7.1 后 openssl 解密 mcrypt AES 數(shù)據(jù)不兼容問題的處理方法
這篇文章主要介紹了升級 PHP7.1 后 openssl 解密 mcrypt AES 數(shù)據(jù)不兼容問題的處理方法,需要的朋友可以參考下2018-07-07
發(fā)款php蜘蛛統(tǒng)計(jì)插件只要有mysql就可用
有時(shí)候我們?yōu)榱丝匆幌轮┲肱佬械那闆r,不得不對日志進(jìn)行大量的分析,由此想做一款插件可以記錄蜘蛛的情況。在第一次做的時(shí)候,只是記錄下蜘蛛的爬行次數(shù),不大好分析。2010-10-10
Google Voice 短信發(fā)送接口PHP開源版(2010.5更新)
Google Voice 短信發(fā)送接口PHP開源版,以前的版本不能用了,作者于2010年5月進(jìn)行了更新。2010-07-07
Laravel中schedule調(diào)度的運(yùn)行機(jī)制
本文主要介紹了Laravel中schedule調(diào)度的運(yùn)行機(jī)制,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
新浪SAE云平臺下使用codeigniter的數(shù)據(jù)庫配置
這篇文章主要介紹了新浪SAE云平臺下使用codeigniter的數(shù)據(jù)庫配置,主要涉及在database.php的配置,需要的朋友可以參考下2014-06-06

