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 相关文章推荐
Snoopy类使用小例子
Apr 15 PHP
php连接数据库代码应用分析
May 29 PHP
php入门学习知识点五 关于php数组的几个基本操作
Jul 14 PHP
一个PHP并发访问实例代码
Sep 06 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
Jun 05 PHP
PHP5中GD库生成图形验证码(有汉字)
Jul 28 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 PHP
php使用$_POST或$_SESSION[]向js函数传参
Sep 16 PHP
php最简单的删除目录与文件实现方法
Nov 28 PHP
typecho插件编写教程(一):Hello World
May 28 PHP
PHP进阶学习之依赖注入与Ioc容器详解
Jun 19 PHP
php异常处理捕获错误整理
Sep 23 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函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2011/12/05 PHP
php单一接口的实现方法
2015/06/20 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
thinkPHP线上自动加载异常与修复方法实例分析
2016/12/01 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
Mootools 1.2教程 定时器和哈希简介
2009/09/15 Javascript
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
详解JavaScript基于面向对象之继承
2015/12/13 Javascript
JavaScript弹窗基础篇
2016/04/27 Javascript
AngularJS 表达式详解及实例代码
2016/09/14 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
解决Vue @submit 提交后不刷新页面问题
2020/07/18 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
python的绘图工具matplotlib使用实例
2014/07/03 Python
跟老齐学Python之再深点,更懂list
2014/09/20 Python
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
详解Python开发中如何使用Hook技巧
2017/11/01 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
2017/12/12 Python
解读python logging模块的使用方法
2018/04/17 Python
Python中property函数用法实例分析
2018/06/04 Python
python虚拟环境完美部署教程
2019/08/06 Python
Python笔记之观察者模式
2019/11/20 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
英国奢侈品牌时尚购物平台:Farfetch(支持中文)
2020/02/18 全球购物
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
应届毕业生自荐信
2014/05/28 职场文书
挂靠协议书
2015/01/27 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
五星级酒店宣传口号
2015/12/25 职场文书