Discuz3.2插件添加微信扫码支付模式二失败分析

来源:互联网 发布:java 生成pdf表单 编辑:程序博客网 时间:2024/05/16 02:23

前些天因为公司有一些业务需求,需要往Discuz插件里添加微信扫码支付的功能,毕竟之前做过微信支付这一块,觉得应该不会花太久,但事实是,直接击穿了我的玻璃心哭

扫码支付二流程

1.开通微信公众号后设置扫码支付 地址为 https://mp.weixin.qq.com

开通扫码支付二,不用在公众号设置支付回调,可以在代码里面添加回调通知安静

2.生成支付二维码


3.支付成功回调处理

由于微信官方缺乏测试调试工具,我多次分析无果只好硬着头皮用了第三方集成支付SDK点击打开链接,启动调试模式发送消息时返回错误提示信息,根据提示内容我去

source\class\discuz\discuz_application.php 找到


可以发现底层处于安全性的考虑,把部分带有特殊标记的原生数据给截断掉,导致回调已经发送却中途丢失的情况。经处理,改为


          $temp = strtoupper(urldecode(urldecode($_SERVER['REQUEST_URI'])));  if(strpos($temp, '<') !== false || strpos($temp, '"') !== false || strpos($temp, 'CONTENT-TRANSFER-ENCODING') !== false) {system_error('request_tainting');  }  return true;
0 0
原创粉丝点击