<?php require_once '../../include.php'; //支付类型 $payment_type = "1"; //必填,不能修改 //服务器异步通知页面路径 $notify_url = HOMEURL . "plugins/wapalipay/return/notify_url.php"; //需http://格式的完整路径,不能加?id=123这类自定义参数 //页面跳转同步通知页面路径 $return_url = HOMEURL . "plugins/wapalipay/return/return_url.php"; //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/ $order_sn = $_GET['id']; $order_sn = trim($order_sn); //根据订单号获取订单信息 $order_info = OrderInfo::getOrderInfoBySn($order_sn); if (!$order_info) { exit("error"); } //商户订单号 $out_trade_no = $order_info['sn']; //商户网站订单系统中唯一订单号,必填 //订单名称 $subject = 'test'; //必填 //付款金额 $total_fee = $order_info['order_money'] + $order_info['shipping_fee'] - $order_info['bonus']; //必填 //订单描述 $body = 'very good'; //商品展示地址
$trade_status = $_REQUEST['trade_status']; //记录同步回来的信息 Log::write2($_REQUEST, 'wapalipay'); if ($_REQUEST['trade_status'] == 'TRADE_FINISHED' || $_REQUEST['trade_status'] == 'TRADE_SUCCESS') { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 //如果有做过处理,不执行商户的业务程序 //注意(TRADE_FINISHED): //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知 //注意(TRADE_SUCCESS): //付款完成后,支付宝系统发送该交易状态通知 //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); //检查订单是否存在 $order_info = OrderInfo::getOrderInfoBySn($out_trade_no); if ($order_info) { //检查支付钱数是否被修改过 $total_fee = $_REQUEST['total_fee']; $money_paid = $order_info[0]['order_money'] + $order_info[0]['shipping_fee'] - $order_info[0]['bonus']; if ($total_fee != $money_paid) { Log::write2("支付钱数对不上, 订单号为:" . $order_info['sn'] . ", 支付宝返回总钱数" . $total_fee . "!=订单总钱数" . $money_paid . "\n" . json_encode($_REQUEST) . "\n" . json_encode($order_info) . "\n", 'wapalipay'); exit('error'); } $order_id = $order_info[0]['order_id']; //支付成功,改变支付状态为yes if ($order_info[0]['pay_status'] == 'no') { OrderInfo::editOrderStatus($order_id, '支付宝'); } header("location:" . URL . 'wapalipay/alipay/zfb_order_done/' . $order_id); exit;