• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
车车大人
博客园    首页    新随笔    联系   管理     

微信和支付宝支付成功以后的回调方法

//微信回调地址
    public function actionNotify(){
       // $msg = array();
        $postStr = file_get_contents('php://input');
        //$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
        $msg = (array)simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
        $out_trade_no = $msg['out_trade_no'];//订单号
        if (empty($msg['out_trade_no'])) {
            return Helper::format_data(PARAM_ERROR,['data'=>'1']);    
        }
        $order = new Orders();
        if ($msg['result_code'] == 'SUCCESS') {
            $data = $order->find()->where(['order_sn'=>$out_trade_no])->one();
            $data->status = 2;
            $data->pay_time = time();
            if($data->save()){
                $wxpay = new Wxpay();
                $str = $wxpay->find()->where(['order_sn'=>$msg['out_trade_no']])->one();
                if(empty($str)){
                    $wxpay->user_id = $data->user_id;
                    $wxpay->total_fee = $msg['total_fee']/100;
                    $wxpay->order_sn = $msg['out_trade_no'];
                    $wxpay->time_end = $msg['time_end'];
                    $wxpay->create_time = time();
                    if($wxpay->save(false)){
                        return Helper::format_data(SUCC,$data->orders_id);
                    }    
                }
            }
        } else {
           return Helper::format_data(PARAM_ERROR, $msg);
        }
    }
    //支付宝回调
    public function actionNotifys(){
        $out_trade_no = $_POST['out_trade_no'];
        if (empty($_POST['out_trade_no'])) {
           return Helper::format_data(PARAM_ERROR,['id'=>'修改充值记录没有获取POST']);
        }
        if(!empty($_POST['trade_status'])){         //状态值不为空
                //检查该账单是否已支付.....
                if($_POST['trade_status'] == 'TRADE_FINISHED' OR $_POST['trade_status']  == 'TRADE_SUCCESS') {
                    $order = new Orders();
                    $data = $order->find()->where(['order_sn'=>$_POST['out_trade_no']])->one();
                    if(empty($data)){
                         return Helper::format_data(PARAM_ERROR,['id'=>'无效的订单号']);
                    }
                    $data->status = 2;
                    $data->pay_time = time();
                    $zfbpay = new Zfbpay();
                    $str = $zfbpay->find()->where(['order_sn'=>$_POST['out_trade_no']])->one();
                    if(!empty($str)){
                         return Helper::format_data(PARAM_ERROR,['id'=>'已经存在']);
                    }
                    $zfbpay->user_id = $data->user_id;
                    $zfbpay->total_fee = $_POST['invoice_amount'];
                    $zfbpay->order_sn = $_POST['out_trade_no'];
                    $zfbpay->create_time = time();
                    if($data->save() && $zfbpay->save(false)){
                        return Helper::format_data(SUCC,$data->orders_id);
                    }
                }else {
                   return Helper::format_data(PARAM_ERROR, $_POST);
                }
            }
    }
    //将XML转为array
    public function actionxmlToArray($xml)
    {
        //禁止引用外部xml实体
        libxml_disable_entity_loader(true);
        $array = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
        return $array;
    }

 

通往牛逼的路上,在意的只有远方!
posted @ 2017-11-13 10:26  车车大人  阅读(5598)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3