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 相关文章推荐
PHP 读取和修改大文件的某行内容的代码
Oct 30 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
May 18 PHP
php输出表格的实现代码(修正版)
Dec 29 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
Jun 10 PHP
php防止sql注入代码实例
Dec 18 PHP
PHP5.3与5.5废弃与过期函数整理汇总
Jul 10 PHP
php给一组指定关键词添加span标签的方法
Mar 31 PHP
php执行多个存储过程的方法【基于thinkPHP】
Nov 08 PHP
PHP基于Closure类创建匿名函数的方法详解
Aug 17 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
Oct 14 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 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
PHP开发文件系统实例讲解
2006/10/09 PHP
php shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
2018/12/18 PHP
PHP写API输出的时用echo的原因详解
2019/04/28 PHP
一个不错的应用,用于提交获取文章内容,不推荐用
2007/03/03 Javascript
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
用javascript为页面添加天气显示实现思路及代码
2013/12/02 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
jQuery Mobile操作HTML5的常用函数总结
2016/05/17 Javascript
js实现可键盘控制的简单抽奖程序
2016/07/13 Javascript
Wireshark基本介绍和学习TCP三次握手
2016/08/15 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/10/05 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
为什么我们要做三份 Webpack 配置文件
2017/09/18 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
JavaScript中break、continue和return的用法区别实例分析
2020/03/02 Javascript
Javascript异步编程async实现过程详解
2020/04/02 Javascript
Python中关于使用模块的基础知识
2015/05/24 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
windows下python之mysqldb模块安装方法
2017/09/07 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
Tensorflow 实现修改张量特定元素的值方法
2018/07/30 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
将python图片转为二进制文本的实例
2019/01/24 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
python通过http下载文件的方法详解
2019/07/26 Python
Python函数中的可变长参数详解
2019/09/12 Python
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
工程造价自荐信
2013/10/09 职场文书
运动会横幅标语
2014/06/17 职场文书
发票退票证明
2015/06/24 职场文书