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 相关文章推荐
解决phpmyadmin中文乱码问题。。。
Jan 18 PHP
php 函数使用方法与函数定义方法
May 09 PHP
关于session在PHP5的配置文件中的详细设置参数说明
Apr 20 PHP
浅析PHP的静态成员函数效率更高的原因
Jun 13 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
ThinkPHP模板替换与系统常量及应用实例教程
Aug 22 PHP
php基础教程
Aug 26 PHP
ThinkPHP框架安全实现分析
Mar 14 PHP
php 数组字符串搜索array_search技巧
Jul 05 PHP
laravel创建类似ThinPHP中functions.php的全局函数
Nov 26 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
php如何获取Http请求
Apr 30 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
微信公众平台开发之天气预报功能
2015/08/31 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
php引用和拷贝的区别知识点总结
2019/09/23 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
js 提交form表单和设置form表单请求路径的实现方法
2016/10/25 Javascript
JS实现中国公民身份证号码有效性验证
2017/02/20 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
Python collections模块实例讲解
2014/04/07 Python
Python的Twisted框架上手前所必须了解的异步编程思想
2016/05/25 Python
JPype实现在python中调用JAVA的实例
2017/07/19 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
利用Python如何批量修改数据库执行Sql文件
2018/07/29 Python
浅谈python 导入模块和解决文件句柄找不到问题
2018/12/15 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
Python实现堡垒机模式下远程命令执行操作示例
2019/05/09 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
pycharm设置当前工作目录的操作(working directory)
2020/02/14 Python
python的sys.path模块路径添加方式
2020/03/09 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
HTML5中的音频和视频媒体播放元素小结
2016/01/29 HTML / CSS
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
机电一体化专业推荐信
2013/12/03 职场文书
网站推广策划方案
2014/06/04 职场文书
大学计划书范文800字
2014/08/14 职场文书
2019个人半年工作总结
2019/06/21 职场文书
Nginx配置https的实现
2021/11/27 Servers
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers