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 相关文章推荐
8个出色的WordPress SEO插件收集
Feb 26 PHP
Php图像处理类代码分享
Jan 19 PHP
组合算法的PHP解答方法
Feb 04 PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 PHP
PHP中的Memcache详解
Apr 05 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
May 08 PHP
PHP实现补齐关闭的HTML标签
Mar 22 PHP
PHP生成静态HTML文档实现代码
Jun 23 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
PHP 图片合成、仿微信群头像的方法示例
Oct 25 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
Dec 12 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教程 变量定义
2009/10/23 PHP
PHP遍历目录并返回统计目录大小
2014/06/09 PHP
Yii框架操作cookie与session的方法实例详解
2019/09/04 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
javascript之ESC(第二类混淆)
2007/05/06 Javascript
js AspxButton的客户端操作
2009/06/26 Javascript
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
2013/10/11 Javascript
JavaScript中判断对象类型的几种方法总结
2013/11/11 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
AngularJS 控制器 controller的详解
2017/10/17 Javascript
three.js加载obj模型的实例代码
2017/11/10 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
详解如何在项目中使用jest测试react native组件
2018/02/09 Javascript
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
vue.js实现备忘录demo
2019/06/26 Javascript
Vue实现点击导航栏当前标签后变色功能
2020/08/19 Javascript
[04:29]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/02/01 DOTA
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
通过实例浅析Python对比C语言的编程思想差异
2015/08/30 Python
详解Django之admin组件的使用和源码剖析
2018/05/04 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
2018/05/30 Python
python实现随机漫步方法和原理
2019/06/10 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
Pytorch中膨胀卷积的用法详解
2020/01/07 Python
Django model class Meta原理解析
2020/11/14 Python
KOHLER科勒美国官网:国际著名卫浴橱柜领先品牌
2020/06/27 全球购物
请问如下代码执行后a和b的值分别是什么
2016/05/05 面试题
介绍一下sql server的安全性
2014/08/10 面试题
社区巾帼文明岗事迹材料
2014/06/03 职场文书
委托书怎么写
2014/07/31 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
离婚起诉书怎么写
2015/05/19 职场文书
5种 JavaScript 方式实现数组扁平化
2021/10/05 Javascript
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA