$coin->coin 'coin' => 1 ]); } /** * 点币购买 * @author lyh * @date 2019/3/28 * @description */ public function buy(Request $request) { $validator = \Validator::make($param = $request->all(), [ // 'coin' => 'required|numeric', 'number' => 'required|integer|min:1', // 'total_price' => 'required|numeric', 'pay_type' => 'required|integer' ]); if ($validator->fails()) { return showJsonErr($validator->errors()->first()); } // 1/100=人民币/点币 // 人民币 = 点币数量 //$coin = Proxy::getConfig(\Auth::id())->coin; $coin=1; // 价格 = 数量/点币汇率 $param['total_price'] = round($param['number'] / $coin, 2); // 获取支付信息 $orderNo = Order::makeOrderNo(); $pay = PayDispatchService::dispatch($param['pay_type']); // 获取支付信息 // $payData = $pay->getPayInfo($orderNo, $param['total_price'], \Auth::user()->mobile . '点币购买'); //$payData = $pay->getPayInfo($orderNo, 0.01, \Auth::user()->mobile . '点币购买');//测试 //$param['total_price']=0.01; if ($param['pay_type'] == 2) { $payData = $pay->getAppPayInfo($orderNo, $param['total_price'], \Auth::user()->mobile . '点币购买');//测试 } if ($param['pay_type'] == 21) { $pay = PayDispatchService::dispatch(2); $payData = $pay->getPayInfo($orderNo, $param['total_price'], \Auth::user()->mobile . '点币购买');//测试 } if ($param['pay_type'] == 3) {//微信支付 $payData = $pay->getPayInfo($orderNo, $param['total_price'], \Auth::user()->mobile . '点币购买');//测试 } if ($param['pay_type'] == 31) {//微信支付h5 $pay = PayDispatchService::dispatch(3); $getPayInfoh5Data = $pay->getPayInfoh5($orderNo, $param['total_price'], \Auth::user()->mobile . '点币购买');//测试 $payData['url'] = env('APP_URL').'/re.php?re='.urlencode($getPayInfoh5Data->getTargetUrl()); } // var_dump($payData); try { // todo 生成支付订单、并返回参数 $orderData = [ 'uid' => \Auth::id(), 'type' => 3, 'order_no' => $orderNo, 'pay_no' => $pay_no = $orderNo, 'price' => $param['total_price'], 'is_pay' => 0, 'pay_type' => $param['pay_type'], 'status' => 2, ]; if (empty($order_id = Order::insertGetId($orderData))) { \DB::rollBack(); return showJsonErr('生成订单失败'); } UserCoin::insertGetId([ 'uid' => \Auth::id(), 'order_id' => $order_id, 'price' => round(1 / $coin, 2), // 单价 'num' => $param['number'], // 数量 'total_price' => $param['total_price'], // 总价 'coin_parities' => $coin, // 汇率 'pay_type' => $param['pay_type'] ]); \DB::commit(); /*if ($param['pay_type'] == 2) { return showJsonSucc('');$payData; }*/ return showJsonSucc('提交购买点币成功', [ 'payData' => $payData ]); } catch (Exception $exception) { \DB::rollBack(); return showJsonErr('购买点币失败', [ 'message' => $exception->getMessage() ]); } } }