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使之能同时支持GIF和JPEG
Oct 09 PHP
《PHP编程最快明白》第八讲:php启发和小结
Nov 01 PHP
PHP时间戳 strtotime()使用方法和技巧
Oct 29 PHP
PHP过滤★等特殊符号的正则
Jan 27 PHP
php之readdir函数用法实例
Nov 13 PHP
PHP检测字符串是否为UTF8编码的常用方法
Nov 21 PHP
php使用mysqli向数据库添加数据的方法
Mar 20 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
Feb 23 PHP
php使用文本统计访问量的方法
May 12 PHP
PHP 读取大文件并显示的简单实例(推荐)
Aug 12 PHP
php实现微信支付之现金红包
May 30 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
Mar 09 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 Web开发MVC框架的Smarty使用说明
2013/04/19 PHP
zend framework文件上传功能实例代码
2013/12/25 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
php实现简易计算器
2020/08/28 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2021/03/09 PHP
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
利用Vue.js实现checkbox的全选反选效果
2017/01/18 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
React组件refs的使用详解
2018/02/09 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
2018/09/03 Javascript
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
Python使用Django实现博客系统完整版
2020/09/29 Python
基于Python Numpy的数组array和矩阵matrix详解
2018/04/04 Python
django 自定义过滤器的实现
2019/02/26 Python
Python中的引用知识点总结
2019/05/20 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
Pycharm最常用的快捷键及使用技巧
2020/03/05 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
python实现最速下降法
2020/03/24 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
学校火灾防控方案
2014/06/09 职场文书
招商银行收入证明
2015/06/17 职场文书
OpenCV 图像梯度的实现方法
2021/07/25 Python
我收到了德劲DE1107
2022/04/05 无线电