| xqd
@@ -7,6 +7,7 @@ use App\Models\Content;
|
|
|
use App\Models\FormData;
|
|
|
use App\Models\FormSet;
|
|
|
use App\Models\Leave;
|
|
|
+use App\Models\Order;
|
|
|
use App\Models\Remark;
|
|
|
use App\Models\RemarkDetail;
|
|
|
use App\Models\RemarkTitle;
|
| xqd
@@ -16,6 +17,7 @@ use App\Models\StudentCourse;
|
|
|
use App\Models\StudentCourseTeacher;
|
|
|
use App\Models\WeChatUser;
|
|
|
use Carbon\Carbon;
|
|
|
+use EasyWeChat\Factory;
|
|
|
use GuzzleHttp\Client;
|
|
|
use Illuminate\Http\Request;
|
|
|
use App\Http\Controllers\Controller;
|
| xqd
@@ -522,6 +524,8 @@ class ApiController extends Controller
|
|
|
return response()->json(['status' => 'fail', 'info' => '参数错误']);
|
|
|
}
|
|
|
|
|
|
+ $type = $data['type'];
|
|
|
+
|
|
|
$items = ['text_1', 'text_2', 'text_3', 'text_4', 'multi_text', 'radio'];
|
|
|
foreach($items as $item) {
|
|
|
if(isset($data[$item])) {
|
| xqd
@@ -538,6 +542,52 @@ class ApiController extends Controller
|
|
|
if(empty($res)) {
|
|
|
return response()->json(['status' => 'fail', 'info' => '保存失败']);
|
|
|
}
|
|
|
+
|
|
|
+ if($type == 'pay') {
|
|
|
+ return $this->makeOrder($request);
|
|
|
+ }
|
|
|
return response()->json(['status' => 'success', 'info' => '提交成功']);
|
|
|
}
|
|
|
+
|
|
|
+ public function makeOrder(Request $request)
|
|
|
+ {
|
|
|
+ if(empty($request->input('money'))) {
|
|
|
+ return response()->json(['status' => 'fail', 'info' => '金额错误']);
|
|
|
+ }
|
|
|
+ if(empty($request->input('id')) || empty($we_chat_user = WeChatUser::find($request->input('id')))) {
|
|
|
+ return response()->json(['status' => 'fail', 'info' => '找不到用户']);
|
|
|
+ }
|
|
|
+// $student = Student::where('open_id', $we_chat_user->open_id);
|
|
|
+ $app = app('wechat.payment');
|
|
|
+
|
|
|
+ $out_trade_no = (new Order())->getOutTradeNo();
|
|
|
+
|
|
|
+ $result = $app->order->unify([
|
|
|
+ 'body' => '钢琴时间',
|
|
|
+ 'out_trade_no' => $out_trade_no,
|
|
|
+ 'total_fee' => $request->input('money'),
|
|
|
+ 'trade_type' => 'JSAPI',
|
|
|
+ 'openid' => $we_chat_user->open_id,
|
|
|
+ ]);
|
|
|
+
|
|
|
+ if ($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS'){
|
|
|
+ $prepayId = $result['prepay_id'];
|
|
|
+ $config = [
|
|
|
+ // 前面的appid什么的也得保留哦
|
|
|
+ 'app_id' => $result['appid'],
|
|
|
+ 'mch_id' => $result['mch_id'],
|
|
|
+ 'key' => env('WECHAT_PAYMENT_KEY', 'key-for-signature'),
|
|
|
+ // 'device_info' => '013467007045764',
|
|
|
+ // 'sub_app_id' => '',
|
|
|
+ // 'sub_merchant_id' => '',
|
|
|
+ // ...
|
|
|
+ ];
|
|
|
+ $payment = Factory::payment($config);
|
|
|
+ $jssdk = $payment->jssdk;
|
|
|
+ $json = $jssdk->bridgeConfig($prepayId);
|
|
|
+ } else {
|
|
|
+ return response()->json(['status' => 'fail', 'info' => '支付失败']);
|
|
|
+ }
|
|
|
+ return response()->json(['status' => 'success', 'data' => $json]);
|
|
|
+ }
|
|
|
}
|