thinkphp5.0 中简单处理微信支付异步通知

 1 public function wx_notify(){
 2         $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
 3         libxml_disable_entity_loader(true);
 4         $xml = json_decode(json_encode(simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA)), true);
 5         if($xml[‘out_trade_no‘]){
 6             $rs = Db::name(‘order_jiaoche‘)->where(array(‘order_sn‘=>$xml[‘out_trade_no‘]))->find();
 7             if($rs){
 8                 Db::name(‘order_jiaoche‘)->where(array(‘order_sn‘=>$xml[‘out_trade_no‘]))->update(array(‘ispay‘=>1));
 9                 echo ‘success‘;
10             }
11         }
12          /*
13          调试所用
14          $fp = fopen(‘notify.txt‘,‘a+‘);
15          fwrite($fp,"\n _______GET________");
16          fwrite($fp,var_export($xml,true));
17          fwrite($fp,"\n ________postObj________");
18          fwrite($fp,var_export($xml,true));
19          fwrite($fp,‘【 Now 】:  ‘. date("Y-m-d H:i:s") ."\n");
20          fclose($fp);
21          print_r($xml);
22          */
23     }

原文地址:https://www.cnblogs.com/luojie-/p/11699718.html

时间: 2024-10-25 14:48:04

thinkphp5.0 中简单处理微信支付异步通知的相关文章

微信支付异步通知无结果

最近做微信支付看了大多和支付宝,网银在线等接口对接差不多. 但微信支付 发起请求的还需要填写支付的目录,另外获取code,access_token的时候需要设置网页授权域名. 如下图: 另外,微信支付和其他一样有一个同步,一个异步的通知.因好多程序都是做了pc,手机端适配,域名可能不一样,在使用中会出现执行中断的结果.笔者找了几天发现原来是异步的问题.如下微信官方demo,notify_url 参数 //①.获取用户openid $tools = new JsApiPay(); $openId

java使用AES-256-ECB(PKCS7Padding)解密——微信支付退款通知接口指定解密方式

1.场景 在做微信支付退款通知接口时,微信对通知的内容做了加密,并且指定用 AES256 解密,官方指定的解密方式如下: 2.导包 <!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on --> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</art

微信支付--异步处理支付结果

package com.ods.wx.web; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONObject; import org.apache.struts.action.ActionForm; import org.apache.struts.action.Acti

ThinkPHP5.0中Redis的使用和封装

Redis是一种常用的非关系型数据库,主要用作数据缓存,数据保存形式为key-value,键值相互映射.它的数据存储跟MySQL不同,它数据存储在内存之中,所以数据读取相对而言很快,用来做高并发非常不错. ThinkPhP5.0自带了Redis扩展,在使用之前先下载php_redis.dll 网址 http://windows.php.net/downloads/pecl/releases/redis/2.2.7/ ;根据自己windows操作系统选择相应的版本,我自己是系统64位,安装的是VC

php 微信支付 回调通知不停的坑

微信支付已完工,最后有点小问题就是微信的回调会重复9次 第一步: $return = "success"; echo $return; 不管用 第二步: $return = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";

thinkPHP5.0中使用header跳转没作用

我在controller中的方法中这样写: header("Location:".$url); 但是一直没动静,不会跳转,最后还是官方文档解决了 https://www.kancloud.cn/manual/thinkphp5/118051 使用 $this->redirect($url,302); 但是不明白为什么 原文地址:https://www.cnblogs.com/ningqing2015/p/9958002.html

thinkPHP5.0中的setInc,setDec方法

---恢复内容开始--- thinkphp中setInc.setDec方法 可用于统计字段(通常是数字类型的字段)的更新,例如积分,等级,登陆次数等 必须配合连贯操作where一起使用 1 $User = M("User"); // 实例化User对象 2 $User->where('id=5')->setInc('score',3); // 用户的积分加3 3 $User->where('id=5')->setInc('score'); // 用户的积分加1

ThinkPHP5.0中的build.php自动生成所需的目录结构的详细方法

一.来到根目录下,找到bulid.php文件进行改写. 改写方法:保留常用的目录结构,其余按照需求改吧! 二.复制一份build.php文件到application目录下 此时根目录下的bulid.php文件可以删除了,tp5生成目录结构和文件用到的是application里面的bulid.php文件, 但是根目录下的建议留下下次使用. 三.打开cmd来到tp5.0的根目录下. 四.运行以下代码(开始编译生成文件). php think build --config build.php 五.生成

thinkphp5.0 中使用第三方无命名空间的类库

ThinkPHP5建议所有的扩展类库都使用命名空间定义,如果你的类库没有使用命名空间,则不支持自动加载,必须使用Loader::import方法先导入文件后才能使用. 首先要在文件头部使用loader thinkphp系统类 use think\Loader; 页面内使用 Loader::import('文件夹.文件名',EXTEND_PATH); 引入后实例化类 在类名前加  \类名 既可以使用该类