add($cartId,$addressId,$this->userId,$this->orgId,$delivery_type,$delivery_date); if(!$ret){ HelpHander::error(model('GOrders')->getError()); } HelpHander::success(['id'=>$ret],'成功'); } //立即购买生成订单 public function createOne(){ $goodsId=input('goods_id/d'); $addressId=input('address_id/d',0); $nums=input('nums/d',0); $delivery_type=input('delivery_type/d',0); $delivery_date=input('delivery_date'); $ret = model('GOrders')->addOne($goodsId,$addressId,$nums,$this->userId,$this->orgId,$delivery_type,$delivery_date); if(!$ret){ HelpHander::error(model('GOrders')->getError()); } HelpHander::success(['id'=>$ret],'成功'); } //商城订单列表 public function orderList(){ $page=input('page/d',1); $size=input('size/d',20); $ret = model('GOrders')->lists($page,$size,$this->userId,$this->orgId); HelpHander::success($ret); } //订单详情 public function orderDetails(){ $orderId=input('order_id/d',0); $ret = model('GOrders')->details($orderId); HelpHander::success($ret); } //订单完成 public function orderAccomplish(){ $ordersId=input('order_id/d',0); model('GOrders')->accomplish($ordersId); HelpHander::success([],'订单已完成'); } //取消订单 public function cancelOrder(){ $id = input('id',0); $data = [ 'status'=>3, 'cancel_time'=>date('Y-m-d H:i:s') ]; $ret = Db::name('g_orders')->where('id',$id)->update($data); //取消订单添加库存 $orderGoods = Db::name('g_order_goods') ->where('order_id',$id) ->select(); foreach ($orderGoods as $k=>$v){ Db::name('g_goods') ->where('id',$v['goods_id']) ->inc('stock',$v['nums']) ->update(); } if($ret){ HelpHander::success([],'取消成功'); }else{ HelpHander::error([],'取消失败'); } } //继续支付 public function goPay(){ $id = input('id',0); $order = Db::name('g_orders')->where('id',$id)->where('status',0)->find(); if(!$order){ HelpHander::error('订单不存在'); } $config = config('app.wx_config'); $notify = request()->domain().'/api/h5/notify/xshopOrder'; $openid = Db::name('wxuser')->where('id',$this->userId)->where('type',1)->value('openid'); $app = Factory::payment($config); $result = $app->order->unify([ 'body' => '商城', 'out_trade_no' => $order['order_sn'], 'total_fee' => $order['amount']*100, 'notify_url' => $notify, // 支付结果通知网址,如果不设置则会使用配置里的默认地址 'trade_type' => 'JSAPI', // 请对应换成你的支付方式对应的值类型 'openid' => $openid, ]); if($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS'){ $jssdk = $app->jssdk; $ret = $jssdk->sdkConfig($result['prepay_id']); // 返回数组 HelpHander::success($ret,'成功'); }else{ HelpHander::error('支付失败'); } } }