当前位置:   article > 正文

坑死人不偿命之微信支付回调_微信支付回调返回了害调

微信支付回调返回了害调

Thinkphp集成微信支付SDK
遇到微信回调无法获取回调参数,导致重写的回调函数无法执行的问题
xml=GLOBALS[‘HTTP_RAW_POST_DATA’];//无法获取参数
改成
$xml=file_get_contents(“php://input”);
就可以了

    /**
     * WxPay.API.php
     * 支付结果通用通知
     * @param function $callback
     * 直接回调函数使用方法: notify(you_function);
     * 回调类成员函数方法:notify(array($this, you_function));
     * $callback  原型为:function function_name($data){}
     */
    public static function notify($callback, &$msg)
    {   
        //获取通知的数据

        // $xml = $GLOBALS['HTTP_RAW_POST_DATA'];
        $xml=file_get_contents("php://input");
        //如果返回成功则验证签名
        try {
            $result = WxPayResults::Init($xml);
        } catch (WxPayException $e){
            $msg = $e->errorMessage();
            return false;
        }

        return call_user_func($callback, $result);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

以下是重写的回调处理函数notify.php文件中PayNotifyCallBack类

    //重写回调处理函数,写上你自己对于支付成功后的操作
    public function NotifyProcess($data, &$msg)
    {   

        Log::DEBUG("call back:" . json_encode($data));
        $notfiyOutput = array();

        if(!array_key_exists("transaction_id", $data)){
            $msg = "输入参数不正确";
            return false;
        }
        //查询订单,判断订单真实性
        if(!$this->Queryorder($data["transaction_id"])){
            $msg = "订单查询失败";
            return false;
        }
        return true;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/184021?site
推荐阅读
相关标签
  

闽ICP备14008679号