php提取微信账单的有效信息


Posted in PHP onOctober 01, 2018

最近要做支付对账,即检查第三方支付与数据库中账单是否一一对应,涉及到微信对账单的处理,微信账单接口返回为一个字符串类似如下结果:

程序需要实现的功能就是从这个字符串从提取每一笔订单中的有效信息,参考代码如下:

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 相关文章推荐
删除无限级目录与文件代码共享
Jul 12 PHP
PHP中的超全局变量
Oct 09 PHP
PHP 常见郁闷问题答解
Nov 25 PHP
php 删除记录实现代码
Mar 12 PHP
php 变量定义方法
Jun 14 PHP
php模拟js函数unescape的函数代码
Oct 20 PHP
PHP中实现生成静态文件的方法缓解服务器压力
Jan 07 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
Dec 23 PHP
PHP获取页面执行时间的方法(推荐)
Dec 10 PHP
php正则修正符用法实例详解
Dec 29 PHP
CakePHP框架Session设置方法分析
Feb 23 PHP
php设计模式之单例模式用法经典示例分析
Sep 20 PHP
YII分模块加载路由的实现方法
Oct 01 #PHP
php实现微信公众号企业转账功能
Oct 01 #PHP
详解json在php中的应用
Sep 30 #PHP
php实现数组重复数字统计实例
Sep 30 #PHP
PHP APP微信提现接口代码
Sep 30 #PHP
PHP实现微信提现功能
Sep 30 #PHP
PHP实现微信商户支付企业付款到零钱功能
Sep 30 #PHP
You might like
自制汽车收音机天线:收听广播的技巧和方法
2021/03/02 无线电
PHP pathinfo()获得文件的路径、名称等信息说明
2011/09/13 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
2014/02/18 PHP
php实现商城购物车的思路和源码分析
2020/07/23 PHP
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
js中对函数设置默认参数值的3种方法
2015/10/23 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
js调用父框架函数与弹窗调用父页面函数的简单方法
2016/11/01 Javascript
JS实现鼠标移上去显示图片或微信二维码
2016/12/14 Javascript
AngularJS中的缓存使用
2017/01/11 Javascript
Javascript实现基本运算器
2017/07/15 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
JavaScript this指向相关原理及实例解析
2020/07/10 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
2020/07/22 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
30分钟搭建Python的Flask框架并在上面编写第一个应用
2015/03/30 Python
使用python3构建文件传输的方法
2019/02/13 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
用python求一重积分和二重积分的例子
2019/12/06 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
Python实现小黑屋游戏的完整实例
2021/01/06 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
CSS3实现文本垂直排列的方法
2018/07/10 HTML / CSS
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
新东网科技Java笔试题
2012/07/13 面试题
公安派出所所长四风问题个人对照检查材料
2014/10/04 职场文书
临时用工协议书范本
2014/10/29 职场文书
廉洁自律证明
2015/06/24 职场文书
党员电教片《信仰》心得体会
2016/01/15 职场文书
2019年幼儿园管理条例范本!
2019/07/17 职场文书