예제 #1
0
if (empty($order_id) && empty($payment_notice_sn)) {
    //进入V3
    //存储微信的回调
    $xml = $GLOBALS['HTTP_RAW_POST_DATA'];
    $notify->saveData($xml);
    if ($notify->checkSign() == FALSE) {
        $notify->setReturnParameter("return_code", "FAIL");
        //返回状态码
        $notify->setReturnParameter("return_msg", "签名失败");
        //返回信息
        //$log_->log_result($log_name,"【签名失败】:\n".$xml."\n");
    } else {
        $notify->setReturnParameter("return_code", "SUCCESS");
        //设置返回码
        //$log_->log_result($log_name,"【支付成功】:\n".$xml."\n");
        $info = $notify->xmlToArray($xml);
        $order_id = intval($info['order_id']);
        $payment_notice_sn = trim($info['out_trade_no']);
        if ($order_id == 0) {
            $payment_notice = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "payment_notice where notice_sn = '" . $payment_notice_sn . "'");
            $order_id = intval($payment_notice['order_id']);
        } else {
            $payment_notice = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "payment_notice where order_id = " . $order_id);
        }
        $trade_no = $info['transaction_id'];
        $out_trade_no = $payment_notice['notice_sn'];
        require_once APP_ROOT_PATH . "system/libs/cart.php";
        $rs = payment_paid($out_trade_no, $trade_no);
        if ($rs) {
            $GLOBALS['db']->query("update " . DB_PREFIX . "payment_notice set outer_notice_sn = '" . $trade_no . "' where id = " . $payment_notice['id']);
        }
예제 #2
0
$log_ = new Log_();
$log_name = "./notify_url.log";
//log文件路径
$log_->log_result($log_name, "【接收到的notify通知】:\n" . $xml . "\n");
if ($notify->checkSign() == TRUE) {
    if ($notify->data["return_code"] == "FAIL") {
        //此处应该更新一下订单状态,商户自行增删操作
        $log_->log_result($log_name, "【通信出错】:\n" . $xml . "\n");
    } elseif ($notify->data["result_code"] == "FAIL") {
        //此处应该更新一下订单状态,商户自行增删操作
        $log_->log_result($log_name, "【业务出错】:\n" . $xml . "\n");
    } else {
        //此处应该更新一下订单状态,商户自行增删操作
        $log_->log_result($log_name, "【支付成功】:\n" . $xml . "\n");
    }
    //商户自行增加处理流程,
    //例如:更新订单状态
    //例如:数据库操作
    //例如:推送支付完成信息
    $xml = $notify->xmlToArray($xml);
    // 商户订单号
    $out_trade_no = $xml['out_trade_no'];
    $log_->log_result($log_name, "【订单号】:\n" . $out_trade_no . "\n");
    // 判断该笔订单是否在商户网站中已经做过处理
    // 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
    // 如果有做过处理,不执行商户的业务程序
    if (!empty($out_trade_no)) {
        $sql = "update " . DB_PREFIX . "order set pay_status=1 where orderid='" . $out_trade_no . "'";
        mysql_query($sql, $conn);
    }
}