微信支付官方给的回调 demo,其中查询订单部分可以去掉么?

        //TODO 1、进行参数校验
        if(!array_key_exists("return_code", $data)
            ||(array_key_exists("return_code", $data) && $data['return_code'] != "SUCCESS")) {
            //TODO失败,不是支付成功的通知
            //如果有需要可以做失败时候的一些清理处理,并且做一些监控
            $msg = "报文异常";
            return false;
        }
        if(!array_key_exists("transaction_id", $data)){
            $msg = "输入参数不正确";
            return false;
        }

        //TODO 2、进行签名验证
        try {
            $checkResult = $objData->CheckSign($config);
            if($checkResult == false){
                //签名错误
                Log::error("签名错误...");
                return false;
            }
        } catch(Exception $e) {
            Log::error(json_encode($e));
        }

        //TODO 3、处理业务逻辑
        Log::debug("call back:" . json_encode($data));
        $notfiyOutput = array();


        //查询订单,判断订单真实性
        if(!$this->Queryorder($data["transaction_id"],$type)){
            $msg = "订单查询失败";
            return false;
        }

查询订单这块,服务器不知道为啥curl特别慢,有时候还报28的错误,感觉支付宝的回调验证没这么复杂吧?不知道这块是否可以删除掉,现在的业务逻辑有点慢。。。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

可以,签名正确后,可以处理自己的业务逻辑。

确认支付金额与订单金额是否一致,并把支付编号保存到数据库中就可以。

3年前 评论
poker_face (楼主) 3年前
24K大白羊 (作者) 3年前
poker_face (楼主) 3年前
讨论数量: 5
Marrigan

可以,有非对称加密我感觉足够安全了吧

3年前 评论

保证请求别人伪造不了就行

3年前 评论

可以,签名正确后,可以处理自己的业务逻辑。

确认支付金额与订单金额是否一致,并把支付编号保存到数据库中就可以。

3年前 评论
poker_face (楼主) 3年前
24K大白羊 (作者) 3年前
poker_face (楼主) 3年前

第一个if 既然是 或 的关系后面的 array_key_exists 判断就没必要了,不存在就必然存在 异步通知处理和查询订单分开感觉好点

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!