//请务必判断请求时的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; } else { Log::write2("订单" . $out_trade_no . "不存在\n" . json_encode($_REQUEST) . "\n", 'wxpay_saoma'); } } else { Log::write2("订单" . $out_trade_no . "支付失败\n", 'wxpay_saoma'); }
<?php require_once "../../../include.php"; Log::write2("call back:\n" . json_encode($data) . "\n", 'wxpay_saoma'); //把订单中的支付改为微信支付 $sn = $data['out_trade_no']; $order_info = OrderInfo::getOrderInfoBySn($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::write2("支付钱数对不上, 订单号为:" . $order_info . ", 微信返回总钱数" . $total_fee . "!=订单总钱数" . $money_paid . "\n" . json_encode($data) . "\n" . json_encode($order_info) . "\n", 'wxpay_saoma'); return false; } //支付成功,改变支付状态为yes $order_id = $order_info['order_id']; if ($order_info['pay_status'] == 'no') { OrderInfo::editOrderStatus($order_id, '微信扫码'); Log::write2("【支付成功】:\n" . json_encode($data) . "\n" . json_encode($order_info) . "\n", 'wxpay_saoma'); } } else { Log::write2("订单" . $sn . "不存在\n" . json_encode($data) . "\n", 'wxpay_saoma'); return false; }