|
@@ -4,9 +4,14 @@ namespace App\Http\Controllers\Api;
|
|
|
use App\Http\Requests\Api\PostsRequests\AskRequest;
|
|
|
use Illuminate\Http\Request;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
+use App\Wen\Utils\Utils;
|
|
|
+use App\Models\WxOrder;
|
|
|
+use App\Models\User\WxUser;
|
|
|
+use App\Http\Controllers\Api\Traits\PayTrait;
|
|
|
|
|
|
class AskController extends BaseController
|
|
|
{
|
|
|
+ use PayTrait;
|
|
|
|
|
|
//发起一个咨询
|
|
|
public function createNew(AskRequest $request){
|
|
@@ -158,6 +163,114 @@ class AskController extends BaseController
|
|
|
|
|
|
}
|
|
|
|
|
|
+ //付费咨询拉起订单
|
|
|
+ public function payAskOrder(Request $request)
|
|
|
+ {
|
|
|
+ $order_id = _empty_default_($request->order_id,0);
|
|
|
+ $uid = $request->uid;
|
|
|
+
|
|
|
+ $order = DB::table('ask_order')->where('id',$order_id)->where('user_id',$request->uid)->first();
|
|
|
+ if(empty($order)){
|
|
|
+ return $this->fail(200016,[],'没有找到该咨询');
|
|
|
+ }
|
|
|
+ if($order->status != 0){
|
|
|
+ return $this->fail(200016,[],'该咨询已经支付过了');
|
|
|
+ }
|
|
|
+
|
|
|
+ //
|
|
|
+ $body = '付费咨询';
|
|
|
+ $data['body'] = '付费咨询';
|
|
|
+ $total_fee = $order['ask_price'];
|
|
|
+ $orderSn = 'A' . Utils::getSn();
|
|
|
+
|
|
|
+ $parame = serialize($data);
|
|
|
+ // 创建订单
|
|
|
+ $this->createOrder($uid,101,$body,$total_fee,$total_fee,$orderSn,$parame,'ask_order',$order_id);
|
|
|
+
|
|
|
+ $openid = WxUser::where('id', $uid)->value('weixin_openid');
|
|
|
+ $appid = Settings::get('app_id');
|
|
|
+ $mch_id = Settings::get('mch_id');
|
|
|
+ $key = Settings::get('mch_secret');
|
|
|
+ $out_trade_no = $orderSn;
|
|
|
+ if(_empty_($openid)){
|
|
|
+ return $this->fail(200043, [
|
|
|
+ 'title' => '未绑定微信',
|
|
|
+ 'content' => '还没有获取到您的小程序openId,无法拉起支付',
|
|
|
+ 'confirmText' => '去绑定',
|
|
|
+ 'target_type' => 6,
|
|
|
+ 'target_id' => '/pagesA/mine/editmine/accountbind'
|
|
|
+ ], '未绑定微信');
|
|
|
+ }
|
|
|
+
|
|
|
+ return $this->payHandler($uid, 'wxpay', 'mini', $total_fee, $data['body'], $out_trade_no, 1);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //付费咨询拉起订单
|
|
|
+ public function paySitOrder(Request $request)
|
|
|
+ {
|
|
|
+ $order_id = _empty_default_($request->order_id,0);
|
|
|
+ $uid = $request->uid;
|
|
|
+
|
|
|
+ $order = DB::table('ask_sit_order')->where('id',$order_id)->where('sit_user_id',$request->uid)->first();
|
|
|
+ if(empty($order)){
|
|
|
+ return $this->fail(200016,[],'没有找到该旁听');
|
|
|
+ }
|
|
|
+ if($order->status != 0){
|
|
|
+ return $this->fail(200016,[],'该旁听已经支付过了');
|
|
|
+ }
|
|
|
+
|
|
|
+ //
|
|
|
+ $body = '付费旁听';
|
|
|
+ $data['body'] = '付费旁听';
|
|
|
+ $total_fee = $order['sit_price'];
|
|
|
+ $orderSn = 'A' . Utils::getSn();
|
|
|
+
|
|
|
+ $parame = serialize($data);
|
|
|
+ // 创建订单
|
|
|
+ $this->createOrder($uid,102,$body,$total_fee,$total_fee,$orderSn,$parame,'sit_order',$order_id);
|
|
|
+
|
|
|
+ $openid = WxUser::where('id', $uid)->value('weixin_openid');
|
|
|
+ $appid = Settings::get('app_id');
|
|
|
+ $mch_id = Settings::get('mch_id');
|
|
|
+ $key = Settings::get('mch_secret');
|
|
|
+ $out_trade_no = $orderSn;
|
|
|
+ if(_empty_($openid)){
|
|
|
+ return $this->fail(200043, [
|
|
|
+ 'title' => '未绑定微信',
|
|
|
+ 'content' => '还没有获取到您的小程序openId,无法拉起支付',
|
|
|
+ 'confirmText' => '去绑定',
|
|
|
+ 'target_type' => 6,
|
|
|
+ 'target_id' => '/pagesA/mine/editmine/accountbind'
|
|
|
+ ], '未绑定微信');
|
|
|
+ }
|
|
|
+
|
|
|
+ return $this->payHandler($uid, 'wxpay', 'mini', $total_fee, $data['body'], $out_trade_no, 1);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 创建订单
|
|
|
+ * $order_type = 101 咨询订单
|
|
|
+ * $order_type = 102 旁听订单
|
|
|
+ */
|
|
|
+ private function createOrder($user_id,$order_type,$order_information,$order_price,$order_pay_price,$order_number,$parame='',$table_name,$table_id)
|
|
|
+ {
|
|
|
+ $orderModel = new WxOrder();
|
|
|
+ $orderModel->user_id = $user_id;
|
|
|
+ $orderModel->order_type = $order_type;
|
|
|
+ $orderModel->order_information = $order_information;
|
|
|
+ $orderModel->order_price = $order_price;
|
|
|
+ $orderModel->order_pay_price = $order_pay_price;
|
|
|
+ $orderModel->order_number = $order_number;
|
|
|
+ $orderModel->parame = $parame;
|
|
|
+ $orderModel->table_name = $table_name;
|
|
|
+ $orderModel->table_id = $table_id;
|
|
|
+ $orderModel->save();
|
|
|
+ return $orderModel;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//答主的主页
|
|
|
//咨询首页
|
|
|
|