微信支付回调接口下单,如何验证微信支付签名 ,处理异步回调

 public function returnpay(){
// 获取微信回调的数据
        $notifiedData = file_get_contents('php://input');

        //XML格式转换
        $xmlObj = simplexml_load_string($notifiedData, 'SimpleXMLElement', LIBXML_NOCDATA);
        $xmlObj = json_decode(json_encode($xmlObj),true);

        // 当支付通知返回支付成功时
        if ($xmlObj['return_code'] == "SUCCESS" && $xmlObj['result_code'] == "SUCCESS") {

            //获取返回的所以参数
            //这里是要把微信返给我们的所有值,先删除sign的值,其他值 按ASCII从小到大排序,md5加密+‘key’;

            foreach( $xmlObj as $k=>$v) {
                if($k == 'sign') {
                    $xmlSign = $xmlObj[$k];
                    unset($xmlObj[$k]);
                };
            }

            $sign = http_build_query($xmlObj);
            //md5处理
            $sign = md5($sign.'&key=fwFKUSBIDAAEEYv9dK3IZ4qWGqX9zRK1');
            //转大写
            $sign = strtoupper($sign);

            //验签名。默认支持MD5

            if ( $sign === $xmlSign) {
                // 总订单号
                $trade_no = $xmlObj['out_trade_no'];
                $where['order_code'] = $trade_no;
                $res = db('plat_card')->where($where)->update(['status'=>1]);
                if($res){
                    exit();
                }
                //处理你商城购物的操作信息


            }

        }

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值