Kirin 1 سال پیش
والد
کامیت
c4f10def78

+ 9 - 9
app/controller/api/v1/PublicController.php

@@ -62,15 +62,15 @@ class PublicController extends BaseController
 //        var_dump(WithdrawService::init()::applySignUrl(286137));
 //        var_dump(WithdrawService::init()::querySignResult('APL1737385463784161280'));
 //        var_dump(WithdrawService::init()::contractDo('239164'));
-//        var_dump(WithdrawService::init()::contractInfo('239164'));
-        var_dump(WithdrawService::init()::fastIssuing(286137, 3,
-            '潘雪珍',
-            '332603197410045327',
-            '13216941319',
-            '6216666200001609444',
-            100,
-            '佣金提现'
-        ));
+        var_dump(WithdrawService::init()::contractInfo('239164'));
+//        var_dump(WithdrawService::init()::fastIssuing(286137, 3,
+//            '潘雪珍',
+//            '332603197410045327',
+//            '13216941319',
+//            '6216666200001509444',
+//            100,
+//            '佣金提现'
+//        ));
 
         //SYYX12023122016485345574
         //{"enterprise_professional_facilitator_id":239164,"professional_id":286137,"professional_sn":"P0286137"}

+ 21 - 4
app/controller/api/v1/WithdrawController.php

@@ -23,11 +23,28 @@ class WithdrawController extends BaseController
 {
     public function notify(Request $request)
     {
-
         $data = $request->post();
-        if ($data['return_code'] == 'SUCCESS') {
-            $info = WithdrawService::init()::decode($data['resoult']);
-            @file_put_contents('notify.txt', json_encode($info) . PHP_EOL, FILE_APPEND);
+        if (!isset($data['sign'])) {
+            @file_put_contents('notify.txt', '未接受到签名' . PHP_EOL, FILE_APPEND);
+            echo 'FAIL';
+            return;
+        }
+        $sign = $data['sign'];
+        unset($data['sign']);
+        if (WithdrawService::init()::checkSign($data, $sign)) {
+            switch ($data['type']) {
+                case 'create_batch_order':
+                    if ($data['return_code'] == 'SUCCESS') {
+                        $info = WithdrawService::init()::decode($data['resoult']);
+                        @file_put_contents('notify.txt', json_encode($info) . PHP_EOL, FILE_APPEND);
+
+                    }
+                    break;
+            }
+
+        } else {
+            @file_put_contents('notify.txt', '签名校验失败' . PHP_EOL, FILE_APPEND);
+            echo 'FAIL';
         }
     }
 }

+ 5 - 0
app/controller/api/v1/user/UserController.php

@@ -302,4 +302,9 @@ class UserController
             return app('json')->fail('记录提交出局处理失败');
         }
     }
+
+    public function addEmployee(Request $request)
+    {
+
+    }
 }

+ 3 - 0
app/services/user/UserServices.php

@@ -48,6 +48,7 @@ use crmeb\services\FormBuilder as Form;
 use crmeb\services\FormBuilder;
 use crmeb\services\SystemConfigService;
 use crmeb\services\wechat\OfficialAccount;
+use crmeb\services\WithdrawService;
 use think\Exception;
 use think\exception\ValidateException;
 use think\facade\Route as Url;
@@ -1695,6 +1696,8 @@ class UserServices extends BaseServices
         $hidden_integral = sys_config('hidden_integral', 0);
         $user['is_default_avatar'] = $user['avatar'] == sys_config('h5_avatar') ? 1 : 0;
         $user['achievement'] = $award_integral_service->getAchievement($user['uid']);
+        $user['bank_info'] = json_decode($user['bank_info'], true);
+        if ($user['sign_result']) $user['sign_result'] = WithdrawService::init()::querySignResult($user['transactionCode']);
         return array_merge($user, compact('hidden_integral', 'award_lack', 'integral_price', 'static_integral', 'action_integral', 'sum_integral'));
     }
 

+ 8 - 0
crmeb/services/WithdrawService.php

@@ -186,6 +186,14 @@ class WithdrawService
         return json_decode(base64_decode($data), true);
     }
 
+    public static function checkSign($data, $sign)
+    {
+        ksort($data);
+        $signString = http_build_query($data) . '&secret=' . self::$secret;
+        $code = md5($signString);
+        return trim($sign) === trim($code);
+    }
+
 
     private static function do_request($url, $data, $header = null, $post = true, $json = false, $format = 0, $form = false)
     {