Selaa lähdekoodia

修复打赏接口

chenxiqiang 6 vuotta sitten
vanhempi
commit
92204e5245

+ 3
- 7
manage-server/app/Http/Controllers/PaymentController.php Näytä tiedosto

@@ -13,19 +13,15 @@ class PaymentController extends Controller
13 13
      * @param Request $request
14 14
      * @return \Illuminate\Http\JsonResponse
15 15
      */
16
-    public function buildOrder(Request $request, $order_id = null, $order_type = null)
16
+    public function buildOrder(Request $request)
17 17
     {
18 18
 
19 19
         $wechat_id = $request->header("openid");
20 20
         if (!$wechat_id) {
21 21
             $wechat_id = $request->input("openid");
22 22
         }
23
-        if (!$order_id) {
24
-            $order_id = $request->input("order_id");
25
-        }
26
-        if (!$order_type) {
27
-            $order_type = $request->input("order_type");
28
-        }
23
+        $order_id = $request->input("order_id");
24
+        $order_type = $request->input("order_type");
29 25
         $order = CommonController::getRecord($order_type, $order_id);
30 26
 
31 27
         // 先判断微信交易是否失效,失效的话需要重新生成份新的系统内部订单,再重新统一下单

+ 48
- 1
manage-server/app/Http/Controllers/RewardController.php Näytä tiedosto

@@ -19,7 +19,54 @@ class RewardController extends Controller
19 19
             $reward->price = $price;
20 20
             $reward->wechat_id = $wechat_id;
21 21
             $reward->save();
22
-            return redirect()->action('PaymentController@buildOrder', ["order_id" => $reward->id, "order_type" => "reward"]);
22
+
23
+            $order = CommonController::getRecord($order_type, $reward->id);
24
+
25
+            // 先判断微信交易是否失效,失效的话需要重新生成份新的系统内部订单,再重新统一下单
26
+            if ($wechat_id && $order) {
27
+                // 判断微信交易是否失效
28
+                if(Carbon::now()->subHour()->gt($order->created_at)) {
29
+                    $order_new = clone $order;
30
+                    $order_new->id = null;
31
+                    $order_new->exists = false;
32
+                    $order_new->save();
33
+                    $order->delete();
34
+                    $order_id = $order_new->id;
35
+                }
36
+
37
+
38
+                $out_trade_no = $order_type . "-" . $order_id;
39
+                $app = app('wechat.payment');
40
+
41
+                $result = $app->order->unify([
42
+                    'body' => '玥子轩家政',
43
+                    'out_trade_no' => $out_trade_no,
44
+                    'total_fee' => $order->price * 100,
45
+                    'trade_type' => 'JSAPI',
46
+                    'openid' => $wechat_id,
47
+                    'notify_url' => 'https://wechat.sotype.com/api/payments/wechat-notify',
48
+                    'time_expire' => Carbon::now()->addHour()->format('YmdHis')
49
+                ]);
50
+
51
+                if ($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS') {
52
+                    //第二次签名
53
+                    //$result = $app->jssdk->appConfig($result['prepay_id']);
54
+                    //$config = $app->configForAppPayment($result['prepay_id']);
55
+                    $config = $app->jssdk->sdkConfig($result['prepay_id']);
56
+                    return response()->json([
57
+                        "status" => 0,
58
+                        "code" => "success",
59
+                        "msg" => $config,
60
+                        "out_trade_no" => $out_trade_no
61
+                    ]);
62
+                } else {
63
+                    return response()->json([
64
+                        "status" => -1,
65
+                        "message" => '微信支付签名失败:' . var_export($result, 1)
66
+                    ]);
67
+                }
68
+
69
+            }
23 70
         }
24 71
     }
25 72
 }

Loading…
Peruuta
Tallenna