微信支付回调没内容的问题

    在微信支付时,我们写了回调地址,但回调里面没有内容。比如我们写了以下的接收代码:

public function payresult(){
      $data = $GLOBALS["HTTP_RAW_POST_DATA"];      
      file_put_contents('data.txt',$data);
      if(!array_key_exists("transaction_id", $data)){
        $msg = "输入参数不正确";
        return false;
      }
      //查询订单,判断订单真实性
      if(!$this->Queryorder($data["transaction_id"])){
        $msg = "订单查询失败";
        return false;
      }
      //微信支付后的操作

      return true;
    }

    我们在根目录下查看data.txt文件,发现要么打印不出来,要么直接没内容。原因在哪?

    经过多次试验,终于找到了问题所在。原来自己在公众控制器里面加了这么一行代码:

function __construct(){
		parent::__construct();
		session_start();
		if(!session("?openid")){
			$this->getVistorInfo();
		}
	}

    这是什么?这是验证当前访问有没有获取到访客的openID,如果没有,则重新发起请求。

    问题也就出在这。

    微信支付之类的回调,跟微信开发时设置的“服务器配置”一样。不能做这方面的限制。也就是微信给你返回结果了,你还验证人家有没有“openID”这显示是不行的。

    所以,知道处理方式了吧?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值