public function NotifyProcess($data, &$msg) { $log = Log::factory(NT_LOGS_PATH . 'wxpay_saoma/'); $log->write('wxpay_saoma_notify', "call back:\n" . json_encode($data) . "\n"); $notfiyOutput = array(); if (!array_key_exists("transaction_id", $data)) { $msg = "输入参数不正确"; $log->write('wxpay_saoma_notify_transaction_id', "输入参数不正确\n" . json_encode($data) . "\n"); return false; } //查询订单,判断订单真实性 if (!$this->Queryorder($data["transaction_id"])) { $msg = "订单查询失败"; $log->write('wxpay_saoma_notify_Queryorder', "订单" . $data['out_trade_no'] . "查询失败\n" . json_encode($data) . "\n"); return false; } /******************************查询订单正确后start*****************************************/ //把订单中的支付改为微信支付 $order_sn = $data['out_trade_no']; $order_info = OrderInfo::get_by_sn($order_sn); if ($order_info) { //检查支付钱数是否被修改过 $total_fee = $data["total_fee"] / 100; $money_paid = $order_info['order_money'] + $order_info['shipping_fee'] - $order_info['bonus']; if ($total_fee != $money_paid) { $log->write('wxpay_saoma_money', "支付钱数对不上, 订单号为:" . $order_info . ", 微信返回总钱数" . $total_fee . "!=订单总钱数" . $money_paid . "\n" . json_encode($data) . "\n" . json_encode($order_info) . "\n"); return false; } //支付成功,改变支付状态为yes $order_id = $order_info['order_id']; if ($order_info['pay_status'] == 'no') { $order = new OrderInfo($order_id); $modify = $order->wxsaoma_pay_status(); $log->write('wxpay_saoma_changepay', $modify); $log->write('wxpay_saoma_success', "【支付成功】:\n" . json_encode($data) . "\n" . json_encode($order_info) . "\n"); } } else { $log->write('wxpay_saoma_not_exists_order', "订单" . $order_sn . "不存在\n" . json_encode($data) . "\n"); return false; } /******************************查询订单正确后end*****************************************/ return true; }