public function testSend() { $order_insert_result = $this->order_info->send(); $this->assertInstanceOf('BuKoli\\Result\\OrderInsert', $order_insert_result); $this->assertEquals(1, $order_insert_result->getStatus()); $this->assertNotEmpty($order_insert_result->getTrackingNumber()); }
function getTag($tag) { global $application; $value = null; switch ($tag) { case 'PersonInfoShipping': $value = $this->getPersonInfo('Shipping'); break; case 'PersonInfoBilling': $value = $this->getPersonInfo('Billing'); break; case 'OrderTrackId': if (modApiFunc("Checkout", "getDeleteOrdersFlag") == "true") { $value = nl2br($this->_order['TrackId']); } else { $value = nl2br($this->_order['TrackId']); } break; case 'PrintCommand': if ($this->_print != 'Y') { $value = ''; } else { $value = modApiFunc('TmplFiller', 'fill', 'checkout/' . $this->template_folder . '/', 'print_js_code.tpl.html', array()); } break; default: $value = parent::getTag($tag); break; } return $value; }
/** * Getting The end javascript * * @return string */ protected function _getEndJs() { if (!($order = Order::get($this->Request['orderId'])) instanceof Order) { die('Invalid Order!'); } if (trim($order->getType()) !== Order::TYPE_INVOICE) { header('Location: /order/' . $order->getId() . '.html?' . $_SERVER['QUERY_STRING']); die; } $js = parent::_getEndJs(); $orderItems = $courierArray = array(); foreach ($order->getOrderItems() as $orderItem) { $orderItems[] = $orderItem->getJson(); } $purchaseEdit = $warehouseEdit = $accounEdit = $statusEdit = 'false'; if ($order->canEditBy(Core::getRole())) { $statusEdit = $order->canEditBy(Core::getRole()) && Core::getRole()->getId() === trim(Role::ID_SYSTEM_ADMIN) ? 'true' : 'false'; if (in_array(intval(Core::getRole()->getId()), array(Role::ID_SYSTEM_ADMIN, Role::ID_STORE_MANAGER, Role::ID_SALES))) { $purchaseEdit = $warehouseEdit = $accounEdit = 'true'; } else { if (trim(Core::getRole()->getId()) === trim(Role::ID_PURCHASING)) { $purchaseEdit = 'true'; } else { if (trim(Core::getRole()->getId()) === trim(Role::ID_WAREHOUSE)) { $purchaseEdit = 'false'; $warehouseEdit = 'true'; $statusEdit = 'false'; } } } } if (in_array(intval(Core::getRole()->getId()), array(Role::ID_SYSTEM_ADMIN, Role::ID_STORE_MANAGER, Role::ID_ACCOUNTING, Role::ID_SALES))) { $accounEdit = 'true'; } $orderArray = $order->getJson(); $orderArray['childrenOrders'] = array_map(create_function('$a', 'return $a->getOrder()->getJson();'), OrderInfo::getAllByCriteria('typeId = ? and value = ?', array(OrderInfoType::ID_CLONED_FROM_ORDER_NO, trim($order->getOrderNo())))); $orderArray['creditNotes'] = array_map(create_function('$a', 'return $a->getJson();'), CreditNote::getAllByCriteria('orderId = ?', array(trim($order->getId())))); $orderStatuses = array_map(create_function('$a', 'return $a->getJson();'), OrderStatus::findAll()); $courierArray = array_map(create_function('$a', 'return $a->getJson();'), Courier::findAll()); $js .= 'pageJs'; $js .= '.setCallbackId("updateOrder", "' . $this->updateOrderBtn->getUniqueID() . '")'; $js .= '.setCallbackId("changeOrderStatus", "' . $this->changeOrderStatusBtn->getUniqueID() . '")'; $js .= '.setCallbackId("updateOIForWH", "' . $this->updateOIForWHBtn->getUniqueID() . '")'; $js .= '.setCallbackId("updateShippingInfo", "' . $this->updateShippingInfoBtn->getUniqueID() . '")'; $js .= '.setCallbackId("clearETA", "' . $this->clearETABtn->getUniqueID() . '")'; $js .= '.setCallbackId("changeIsOrdered", "' . $this->changeIsOrderedBtn->getUniqueID() . '")'; $js .= '.setCallbackId("updateAddress", "' . $this->updateAddressBtn->getUniqueID() . '")'; $js .= '.setCallbackId("updatePONo", "' . $this->updatePONoBtn->getUniqueID() . '")'; $js .= '.setCallbackId("changeShippingMethod", "' . $this->changeShippingMethodBtn->getUniqueID() . '")'; $js .= '.setCallbackId("updateSerials", "' . $this->updateSerialsBtn->getUniqueID() . '")'; $js .= '.setEditMode(' . $purchaseEdit . ', ' . $warehouseEdit . ', ' . $accounEdit . ', ' . $statusEdit . ')'; $js .= '.setOrder(' . json_encode($orderArray) . ', ' . json_encode($orderItems) . ', ' . json_encode($orderStatuses) . ', ' . OrderStatus::ID_SHIPPED . ')'; $js .= '.setCourier(' . json_encode($courierArray) . ', ' . Courier::ID_LOCAL_PICKUP . ')'; $js .= '.setCommentType("' . Comments::TYPE_PURCHASING . '", "' . Comments::TYPE_WAREHOUSE . '")'; $js .= '.setOrderStatusIds([' . OrderStatus::ID_NEW . ', ' . OrderStatus::ID_INSUFFICIENT_STOCK . '], [' . OrderStatus::ID_ETA . ', ' . OrderStatus::ID_STOCK_CHECKED_BY_PURCHASING . ', ' . OrderStatus::ID_INSUFFICIENT_STOCK . '], [' . OrderStatus::ID_PICKED . '])'; $js .= '.init("detailswrapper")'; $js .= '.load();'; return $js; }
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; }
public function zfb_order_done($order_id) { //检查orderid是不是本人的 Assert::num_gt_zero($order_id); $uid = User::get_login_id(); if (!$uid) { $url = URL . 'login'; header("Location:{$url}"); throw new Exception("exit"); } else { $result = OrderInfo::get_order_info($order_id); if (!$result) { header("location:" . URL); } $smarty = get_smarty(); //再去逛逛 $smarty->assign('homeurl', URL); //订单详情 $smarty->assign('order_detail_url', URL . 'weixin/usercenter/order_detail/' . $order_id); $smarty->display('web/home/order_success.html'); } }
function callpay() { if (typeof WeixinJSBridge == "undefined"){ if( document.addEventListener ){ document.addEventListener('WeixinJSBridgeReady', jsApiCall, false); }else if (document.attachEvent){ document.attachEvent('WeixinJSBridgeReady', jsApiCall); document.attachEvent('onWeixinJSBridgeReady', jsApiCall); } }else{ jsApiCall(); } } </script> </head> <body> </br></br></br></br> <?php $info = OrderInfo::get_order_info_by_sn($out_trade_no); ?> <div id="tip" align="center" style=""> <!--<button style="width:210px; height:30px; background-color:#FE6714; border:0px #FE6714 solid; cursor: pointer; color:white; font-size:16px;" type="button" onclick="callpay()" >稍等片刻,马上进入微信支付</button>--> 马上进入微信支付,稍等片刻... </div> <script> callpay(); </script> </body> </html>
public function cancelorder($order_id) { $order_id = (int) $order_id; $uid = LuS::get('uid'); if ($order_id && $uid) { //取消订单 OrderInfo::cancelUserOrderByOrderId($uid, $order_id); //添加库存(取消订单,一般都不会把库存添加回去,有可能把订单变成有效) // AdminGoodsM::plusStock( $uid, $order_id ); } $url = url('usercenter', 'usercenter::detail', $order_id); header('Location:' . $url); throw new Exception('exit'); }
public static function addOrder($uid = 0, $username = '', $pay_name = '货到付款', $default_address_id = 0) { if ($uid) { //从购物车里获取到商品列表 $cart_goods_list = Cart::select($uid); if ($cart_goods_list) { //计算订单总金额 $order_total_data = self::getOrderTotal($cart_goods_list); $total = $order_total_data['total']; //运费 $shipping_fee = self::getOrderShippingFee($total); //优惠 $bonus = 0; //使用优惠券... //收货地址 $address_info = UserAddress::getAddrByAddressId($uid, $default_address_id); if (!$address_info) { $address_info = UserAddress::getDefaultAddress($uid); } $data['sn'] = self::createOrderSn(); //订单号 $data['uid'] = $uid; //用户id $data['username'] = $username; //用户名 $data['order_status'] = 'yes'; //订单有效 $data['consignee'] = $address_info['consignee']; //联系人 $data['province'] = $address_info['province']; //省 $data['city'] = $address_info['city']; //市 $data['district'] = $address_info['district']; //区 $data['address'] = $address_info['address']; //详细地址 $data['mobile'] = $address_info['mobile']; //手机或电话 $data['shipping_fee'] = $shipping_fee; //运费 $data['bonus'] = $bonus; //优惠 $data['order_money'] = $total; //货物总金额 $data['money_paid'] = $total + $shipping_fee + $bonus; //应付款金额 $data['pay_name'] = $pay_name; //付款方式 //非货到付款操作 if ($pay_name !== '货到付款') { $data['pay_time'] = time(); //支付时间 $data['confirm_status'] = 'yes'; //确认订单状态(非货到付款自动确认) $data['confirm_time'] = time(); //确认订单时间 } $rs = OrderInfo::addOrder($data); if ($rs) { //下单成功,减少库存 AdminGoodsM::minusStock($cart_goods_list); //添加到订单商品表 OrderGoodsInfo::addGoods($rs, $cart_goods_list); //删除购物车里面的商品信息 $where = self::_where($uid); Cart::delete($where); } //下单成功 return $rs; } } //下单失败 return false; }
public function addtoorder() { //是否已经登录 User::isLogin(); if (!$_POST) { $url = url('goods', 'goods::balance'); header('Location:' . $url); throw new Exception('exit'); } $default_address_id = isset($_POST['shipping']) ? htmlspecialchars($_POST['shipping']) : 0; $payment = isset($_POST['payment']) ? htmlspecialchars($_POST['payment']) : ''; $is_mobile = isset($_POST['mobile']) ? htmlspecialchars($_POST['mobile']) : ''; $uid = LuS::get('uid'); $username = LuS::get('username'); $order_id = Cart::addOrder($uid, $username, $payment, $default_address_id); //订单详情页 $order_detail_url = url('usercenter', 'usercenter::detail', $order_id); //首页 $home_url = HOMEURL; //订单号 $order_info = OrderInfo::getUserOrderInfoByOrderId($uid, $order_id); //获取支付链接 $pay = GoodsM::getPayList($order_info['sn']); //货到付款 $hdfkpay_url = $order_detail_url; $smarty = get_smarty(); $smarty->assign('order_detail_url', $order_detail_url); $smarty->assign('home_url', $home_url); $str = $smarty->fetch('goods/order_success.html'); //增加一个订单id $return_arr = array(true, $str, $pay['alipay'], $pay['wxpay'], $pay['wxsaomapay'], $hdfkpay_url, $order_id); echo json_encode($return_arr); throw new Exception('exit'); }
public static function editOrderStatus($order_id, $pay_type) { $order_info = getOrderInfoByOrderId($order_id); if ($order_info) { $data = array(); $data['pay_time'] = time(); $data['pay_status'] = 'yes'; $data['pay_name'] = $pay_type; $where = array(); $where['order_id'] = $order_id; OrderInfo::modifyOrderInfo($data, $where); return true; } else { return false; } }
/** * * @param Customer $customer * @param string $orderNo * @param OrderStatus $status * @param string $orderDate * @param string $type * @param string $isFromB2B * @param Address $shipAddr * @param Address $billAddr */ public static function create(Customer $customer, $type = self::TYPE_ORDER, $orderNo = null, $comments = '', OrderStatus $status = null, $orderDate = null, $isFromB2B = false, Address $shipAddr = null, Address $billAddr = null, $passPaymentCheck = false, $poNo = '', Order $cloneFrom = null) { $order = new Order(); $order->setOrderNo(trim($orderNo))->setCustomer($customer)->setStatus($status instanceof OrderStatus ? $status : OrderStatus::get(OrderStatus::ID_NEW))->setOrderDate(trim($orderDate) === '' ? trim(new UDate()) : trim($orderDate))->setIsFromB2B($isFromB2B)->setType(trim($type) === '' ? self::TYPE_ORDER : trim($type))->setShippingAddr($shipAddr instanceof Address ? $shipAddr : $customer->getShippingAddress())->setBillingAddr($billAddr instanceof Address ? $billAddr : $customer->getBillingAddress())->setPassPaymentCheck($passPaymentCheck)->setPONo(trim($poNo)); if ($cloneFrom instanceof Order) { $counts = intval(OrderInfo::countByCriteria('value = ? and typeId = ?', array($cloneFrom->getOrderNo(), OrderInfoType::ID_CLONED_FROM_ORDER_NO))); $newOrderNo = $cloneFrom->getOrderNo() . '-' . ($counts + 1); $order->setOrderNo($newOrderNo); $cloneFrom->addComment($msg = 'A new order has been clone from this order:' . $newOrderNo, Comments::TYPE_SYSTEM)->addLog($msg, Log::TYPE_SYSTEM); } $order->save(); if ($cloneFrom instanceof Order) { $order->addInfo(OrderInfoType::ID_CLONED_FROM_ORDER_NO, $cloneFrom->getOrderNo(), true)->addComment($msg = 'Cloned from Order:' . $cloneFrom->getOrderNo(), Comments::TYPE_SYSTEM)->addLog($msg, Comments::TYPE_SYSTEM); } $order->addComment($comments, Comments::TYPE_NORMAL)->addInfo(OrderInfoType::ID_CUS_EMAIL, $customer->getEmail())->addInfo(OrderInfoType::ID_CUS_NAME, $customer->getName())->addLog('Order (OrderNo.=' . $order->getOrderNo() . ') created with status: ' . $order->getStatus()->getName(), Log::TYPE_SYSTEM, 'Auto Log', __CLASS__ . '::' . __FUNCTION__); return $order; }
protected function change($order_id, $status) { $rs = OrderInfo::modifyOrderStatusByOrderId($order_id, $status); if ($rs) { echo '操作成功'; } else { echo '操作失败'; } throw new Exception('exit'); }
<?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'; //商品展示地址
$log->write('aliapyweb', $_REQUEST); 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::get_order_info_by_sn($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) { exit('error'); } $order_id = $order_info[0]['order_id']; //支付成功,改变支付状态为yes if ($order_info[0]['pay_status'] == 'no') { $order = new OrderInfo($order_id); $order->pay_status(); } header("location:" . URL . 'wapalipay/alipay/zfb_order_done/' . $order_id); exit; } }
//支付成功 $order_sn = $notify->data["out_trade_no"]; $order_sn = trim($order_sn); $log->write('wxpay_notify', array('out_trade_no' => $order_sn)); //把订单中的支付改为微信支付 $order_info = OrderInfo::get_order_info_by_sn($order_sn); if ($order_info) { //检查支付钱数是否被修改过 $total_fee = $notify->data["total_fee"] / 100; $money_paid = $order_info[0]['order_money'] + $order_info[0]['shipping_fee'] - $order_info[0]['bonus']; if ($total_fee != $money_paid) { $log->write('wxpay_money', "支付钱数对不上, 订单号为:" . $order_info[0]['sn'] . ", 微信返回总钱数" . $total_fee . "!=订单总钱数" . $money_paid . "\n" . json_encode($notify->data) . "\n" . json_encode($order_info) . "\n"); exit('error'); } $order_id = $order_info[0]['order_id']; //支付成功,改变支付状态为yes if ($order_info[0]['pay_status'] == 'no') { $order = new OrderInfo($order_id); $modify = $order->wx_pay_status(); $log->write('wxpay_notify_changepay', $modify); $log->write('wxpay_notify', "【支付成功】:\n" . $xml . "\n"); } } else { exit('error'); } } //商户自行增加处理流程, //例如:更新订单状态 //例如:数据库操作 //例如:推送支付完成信息 }
function getTag($tag) { $value = null; switch ($tag) { case 'Local_PersonInfoShipping': case 'Local_PersonInfoBilling': $group_name = _ml_strtolower(str_replace('Local_PersonInfo', '', $tag)); $lang_suffix = _ml_strtoupper($group_name . '_info'); $this->current_info_group = array('name' => $group_name, 'lang_suffix' => $lang_suffix); $value = $this->templateFiller->fill('GroupHeader'); $value .= $this->out_CustomerInfoGroup(_ml_ucfirst($group_name)); break; case 'Local_KeyDetails': $this->current_info_group = array('name' => 'key', 'lang_suffix' => 'KEY_DETAILS'); $value = $this->templateFiller->fill('GroupHeader'); $value .= $this->out_KeyDetails(); break; case 'Local_ProductsDetails': $this->current_info_group = array('name' => 'products', 'lang_suffix' => 'ORDERED_PRODUCTS'); $value = $this->templateFiller->fill('GroupHeader'); $value .= $this->templateFiller->fill('ProductsContainer'); break; default: $value = parent::getTag($tag); break; } return $value; }
$totals = $_POST['totalPrice']; //合法性判断 if (empty($_info['i_name'])) { my_redirect("order.php?goods_id={$goods_id}", '接收人姓名不能为空!', '正在为您跳转到订单页面!'); } if (empty($_info['i_address'])) { my_redirect("order.php?goods_id={$goods_id}", '接收人地址不能为空!', '正在为您跳转到订单页面!'); } if (empty($_info['i_phone'])) { my_redirect("order.php?goods_id={$goods_id}", '接收人电话不能为空!', '正在为您跳转到订单页面!'); } if (strlen($_info['i_phone']) != 11) { my_redirect("order.php?goods_id={$goods_id}", '电话号码长度必须为11位!', '正在为您跳转到订单页面!'); } //获取订单详情对象 $orderInfo = new OrderInfo(); $orderNumber = $orderInfo->getOrderNumber(); $_info['i_number'] = $orderNumber; //订单详情插入订单表内 //$_SESSION['order_goods']['o_id'] = $orderInfo->insertOrderInfo($_info); if ($order_id = $orderInfo->insertOrderInfo($_info)) { //将订单内商品信息插入订单商品表 //var_dump($_SESSION['orderGoods']);exit; $order_goods = new OrderGoods(); $_goods['o_id'] = $order_id; $_goods['g_id'] = $_SESSION['orderGoods']['g_id']; $_goods['g_code'] = $_SESSION['orderGoods']['g_code']; $_goods['o_name'] = $_SESSION['orderGoods']['c_name']; $_goods['o_price'] = $_SESSION['orderGoods']['c_price']; $_goods['o_number'] = $_SESSION['orderGoods']['c_number']; //往订单商品表添加商品
* 4、在接到回调通知之后,用户进行统一下单支付,并返回支付信息以完成支付(见:native_notify.php) * 5、支付完成之后,微信服务器会通知支付成功 * 6、在支付成功通知中需要查单确认是否真正支付成功(见:notify.php) */ $notify = new NativePay(); //模式二 /** * 流程: * 1、调用统一下单,取得code_url,生成二维码 * 2、用户扫描二维码,进行支付 * 3、支付完成之后,微信服务器会通知支付成功 * 4、在支付成功通知中需要查单确认是否真正支付成功(见:notify.php) */ //查询订单 $sn = htmlspecialchars(trim($_GET['id'])); $order_info = OrderInfo::get_order_info_by_sn($sn); if ($order_info) { $order_info = $order_info[0]; } $order_sn = $order_info['sn']; $money_paid = ($order_info['order_money'] + $order_info['shipping_fee'] - $order_info['bonus']) * 100; $order_id = $order_info['order_id']; $artqiyi_money_paid = $order_info['order_money'] + $order_info['shipping_fee'] - $order_info['bonus']; $order_time = $order_info['createtime']; //订单描述 $goods_list = OrderGoodsInfo::get_order_goods_list($order_info['order_id']); $tshirt = 0; $phone = 0; $pillow = 0; $bag = 0; $battery = 0;
//请务必判断请求时的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'); }
/** * creating order info * * @param Order $order * @param OrderInfoType $type * @param string $value * * @return B2BConnector */ private function _createOrderInfo(Order $order, OrderInfoType $type, $value) { $items = OrderInfo::find($order, $type); if (count(OrderInfo::find($order, $type)) > 0) { foreach ($items as $item) { OrderInfo::create($order, $type, $value, $item); } } else { OrderInfo::create($order, $type, $value); } return $this; }
<?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; }