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 相关文章推荐
一个简单的自动发送邮件系统(一)
Oct 09 PHP
一个简洁的多级别论坛
Oct 09 PHP
php mssql 日期出现中文字符的解决方法
Mar 10 PHP
PHP教程 基本语法
Oct 23 PHP
ThinkPHP中的常用查询语言汇总
Aug 22 PHP
php简单实现多语言切换的方法
May 09 PHP
Laravel 5.3 学习笔记之 错误&amp;日志
Aug 28 PHP
php创建图像具体步骤
Mar 13 PHP
php-fpm开启状态统计的方法详解
Jun 23 PHP
php 删除一维数组中某一个值元素的操作方法
Feb 01 PHP
PDO::beginTransaction讲解
Jan 27 PHP
浅析PHP中json_encode与json_decode的区别
Jul 15 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许愿墙模块功能分析
2013/06/25 PHP
thinkphp实现数组分页示例
2014/04/13 PHP
PHP采用XML-RPC构造Web Service实例教程
2014/07/16 PHP
PHP使用ODBC连接数据库的方法
2015/07/18 PHP
PHP处理会话函数大总结
2015/08/05 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
PHP常用函数之获取汉字首字母功能示例
2019/10/21 PHP
jquery中ajax学习笔记一
2011/10/16 Javascript
chrome原生方法之数组
2011/11/30 Javascript
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
2013/11/08 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
angularJS中$apply()方法详解
2015/01/07 Javascript
jquery移除了live()、die(),新版事件绑定on()、off()的方法
2016/10/26 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
vue-router 源码实现前端路由的两种方式
2018/07/02 Javascript
JS函数内部属性之arguments和this实例解析
2018/10/07 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
python根据京东商品url获取产品价格
2015/08/09 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/26 Python
Pycharm之快速定位到某行快捷键的方法
2019/01/20 Python
python环境路径配置以及命令行运行脚本
2019/04/02 Python
python 列表推导式使用详解
2019/08/29 Python
python实发邮件实例详解
2019/11/11 Python
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
金智子午JAVA面试题
2015/09/04 面试题
旅游专业职业生涯规划范文
2014/01/13 职场文书
大学生个人事迹材料
2014/01/21 职场文书
采购部2015年度工作总结
2015/07/24 职场文书
Java数组详细介绍及相关工具类
2022/04/14 Java/Android