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 开发环境配置(测试开发环境)
Apr 28 PHP
PHP GD 图像处理组件的常用函数总结
Apr 28 PHP
apache+php完美解决301重定向的两种方法
Jun 08 PHP
php 模拟POST提交的2种方法详解
Jun 17 PHP
浅析php与数据库代码开发规范
Aug 08 PHP
在Debian系统下配置LNMP的教程
Jul 09 PHP
thinkPHP中配置的读取与C方法详解
Dec 05 PHP
PHP实现判断数组是一维、二维或几维的方法
Feb 06 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
Apr 27 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
May 08 PHP
php面向对象程序设计中self与static的区别分析
May 21 PHP
Laravel自动生成UUID,从建表到使用详解
Oct 24 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
Oracle 常见问题解答
2006/10/09 PHP
PHP 增加了对 .ZIP 文件的读取功能
2006/10/09 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
2014/07/19 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
2015/10/01 PHP
PHP编写登录验证码功能 附调用方法
2016/05/19 PHP
PHP利用二叉堆实现TopK-算法的方法详解
2017/04/24 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
php数据序列化测试实例详解
2017/08/12 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
兼容ie和firefox js关闭代码
2008/12/11 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
javascript实现日期按月份加减
2015/05/15 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
2016/01/18 Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
2016/02/27 Javascript
详解JavaScript中Hash Map映射结构的实现
2016/05/21 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
jQuery validata插件实现方法
2017/06/25 jQuery
iscroll.js滚动加载实例详解
2017/07/18 Javascript
Python异常学习笔记
2015/02/03 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
python中 * 的用法详解
2019/07/10 Python
python中数字是否为可变类型
2020/07/08 Python
详解HTML5 LocalStorage 本地存储
2016/12/23 HTML / CSS
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
车间班长岗位职责
2013/11/30 职场文书
医院信息公开实施方案
2014/05/09 职场文书
英文演讲稿开场白
2014/08/25 职场文书
泰坦尼克号观后感
2015/06/04 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书