Przeglądaj źródła

登录,随机生产用户名

jun 6 miesięcy temu
rodzic
commit
c9c57b2161

+ 13 - 1
app/Helpers/functions.php

@@ -366,5 +366,17 @@ function push_str_arr($dest,$source,$sep=',') {
     // 返回结果
     return          $result;
 }
-
+/**
+ * 随机字条串
+ * @author xie
+ */
+function randStr($leng = 6, $type = false)
+{
+    $string_s = $type ? '123456789' : "qwertyuioplkjhgfdsazxcvbnm123456789";
+    $new_str = "";
+    for ($i = 0; $i < $leng; $i++) {
+        $new_str .= $string_s[rand(0, strlen($string_s) - 1)];
+    }
+    return $new_str;
+}
 ?>

+ 7 - 1
app/Http/Controllers/Api/Wechat.php

@@ -41,10 +41,16 @@ class Wechat extends Api{
 		// 如果没有ID
 		if( empty($custom['uid']) )				{
 			// 注册账号
-			$custom['uid'] 						= $Custom->add(['phone'=>$phone,'username'=>hide_phone($phone),'openid'=>$openid]);
+			$custom['uid'] 						= $Custom->add(['phone'=>$phone,'username'=>'user'.randStr(),'openid'=>$openid]);
 			// 注册失败
 			if( empty($custom['uid']) )			return json_send(['code'=>'error','msg'=>'注册失败,请重试','data'=>['error'=>'注册失败,请重试']]);
 		}
+        // 在查询一次用户
+        $custom									= $Custom->getOneByPhone($phone);
+        $userName								= "user" . randStr();
+        if (empty($custom['username'])) {
+            $re = $Custom::query()->where(['uid'=>$custom['uid']])->update(['username' => $userName]);
+        }
 		// 进行登录
 		$token									= $Custom->createLoginAuthcode($custom['uid'],time());
 		// 返回结果

+ 18 - 3
app/Http/Controllers/Api/WechatPay.php

@@ -77,7 +77,6 @@ class WechatPay extends Api{
             $platformPublicKeyInstance
         );
         Log::log('notify_wechat_pay', '验签:' . $verifiedStatus);
-        $orderService = new OrderService();
         if ($timeOffsetStatus && $verifiedStatus) {
             // 转换通知的JSON文本消息为PHP Array数组
             $inBodyArray = (array)json_decode($inBody, true);
@@ -95,8 +94,24 @@ class WechatPay extends Api{
             Log::log('notify_wechat_pay', '参数:' . $inBodyResourceArray['trade_state'] . '订单号' . $inBodyResourceArray['out_trade_no'] . '微信支付号' . $inBodyResourceArray['transaction_id']);
             if ($inBodyResourceArray['trade_state'] == "SUCCESS") {
                 Log::log('notify_wechat_pay', '通知订单');
-                $res = $orderService->payCallback($inBodyResourceArray['out_trade_no'], $inBodyResourceArray['transaction_id']);
-                Log::log('notify_wechat_pay', '通知返回' . json_encode($res));
+                //更新订单支付状态
+                $orderData = [
+                    'pay_time' => time(),
+                    'transaction_id'=>$inBodyResourceArray['transaction_id'],
+                    'status'=>2,
+                ];
+                try {
+                    $res = Orders::query()->where('snowflake_id','=',$inBodyResourceArray['out_trade_no'])->update($orderData);
+                    if (!$res) {
+                        Log::log('notify_wechat_pay', '更新订单失败' . json_encode($res));
+                        return json_send(['code'=>'FAIL']);
+                    }
+                }catch (\Exception $e){
+                    Log::log('notify_wechat_pay', '更新订单失败' . json_encode($e));
+                    return json_send(['code'=>'FAIL']);
+                }
+                Log::log('notify_wechat_pay', '支付回调完成 通知返回' . json_encode($res));
+                return json_send(['code'=>'SUCCESS']);
 
             }
         }

+ 2 - 2
app/Servers/WechatPay/Payment.php

@@ -19,8 +19,8 @@ class Payment
     function __construct()
     {
         // 从本地文件中加载「商户API私钥」,「商户API私钥」会用来生成请求的签名
-        //$merchantPrivateKeyFilePath = Config('wechatpay.private_key');
-        $merchantPrivateKeyFilePath = 'file://D:\phpstudy_pro\WWW\mall\kailin\resources\1612111355_20241118_cert\apiclient_key.pem';
+        $merchantPrivateKeyFilePath = Config('wechatpay.private_key');
+        //$merchantPrivateKeyFilePath = 'file://D:\phpstudy_pro\WWW\mall\kailin\resources\1612111355_20241118_cert\apiclient_key.pem';
         $merchantPrivateKeyInstance = Rsa::from($merchantPrivateKeyFilePath, Rsa::KEY_TYPE_PRIVATE);
 
         // 「商户API证书」的「证书序列号」

+ 27 - 28
config/wechatpay.php

@@ -6,34 +6,33 @@ return array(
     'APIV3'                 => 'iD1xB1mH6zO7pP2wD1rU4aD2nH7oL2lN',
     'notify_url'            => env('APP_URL').'/api/wechat_pay/notify',
     'private_key'           => '-----BEGIN PRIVATE KEY-----
-MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCYUOGwfz9rFZxJ
-XPNxZovgG321BiwTe+9HtWgCElnMVVMCFipa+ybcMQh0p3M68jdH3PMVbKjrEYy5
-huT3HM5C44l54o2lRM4eMLHvMLeu6VoYSyeXO2hscgVD9QOBmoYVHDx+hatr3rl7
-MGpFhwMnXAeD+a6IXpdek5Wvz46Q6LsnuMf+uNyJ1QwLzWi/VUnJSkT9skyQYtGp
-1ou1NENhrIRqyYtvjarJJQpCvtyGRBaXxNoWeH88RKKvvbMm+YqYjCZBa3Ds/yBa
-+HgBKWj9AtjajmfskiGAU9uAmCes3Bvh9qmm0SuvbwCe8GxYcpdsq992rEP8kybO
-nPGi+KZJAgMBAAECggEACbLUvBVOJ3ZnzjAR/D2IWIvHlFhBRDhXAxzk84TRnPYt
-4+sfZU2qqsigfjUPXEiCBpxmCg4yL02dxU52k9mMtKuiXFV1qXlZGokFO3LBr2yC
-ZRub+MA6pPUZqrsWLxF0yjFTFMdUI/k5nEN38Ndo9v+gJuImH97OCqKhHGG99TIT
-WUVpBCK9z61Iiju67+p5TeTqB3aeIs/KKER2OLdyA6gq1iez8MJLKHi4wzCVCgEa
-QTc0jY4P3KLBoLCxTOZF0qdgepeFvkf/LmoTUWduDpZVhS4wCBZ+pvIEeCAyXhgE
-qDYjjSvj4pGoSFulJxiNMQfP5hqfwC38vskz1s3LkQKBgQDKFrGZgGr5tk+UhnNU
-H3hEkU0aWf3clkDF0DcwRC5FhNTyAGmt1WtUGKcU5S6HgTJkQdu6JaEiABsfrtra
-Aja+0i3YaAr2wyy1DMWNNnDr2fVkLLsCAxh74BVoPFU4iYdqUPwK7dGdxDtGrODE
-XzPkSHBXqP4rNAZMouFEmk9NBQKBgQDA8wtV5+WZjXUipYrXPPJ6bgWjGfESlLs7
-JRo0af0smkULraOGdhv2sjeUUgJsS6upPJuJCuA74YPb/X4OWzOhNGmFvOlxpfE/
-ij3acbjUICUwvJEhbqBvH39UZoNwzqYOAHVjsCMhzDBMzwleERDLdeKFSxojKb1S
-Hh4JqsMXdQKBgQCRLyqamBrCmcqkbs9uMUmrISReeSabkkqoksUDZQhFI4AE+Gzz
-2S7JdQicR2ZdLWFxi6r7GcugbKkP4wQRuaNxBfivz1eJHoEA9VL794+6sZTNSiFz
-+Ztea4eVojqraoqhw9q/U0nT6UWYqdy015ylNbGYGK25hh+8cQwbyCyOrQKBgF+D
-cKcT5mp+xe9itzoZJ4dHk27L1rR1/8ElerVbikJcE7XWPM7BBNK4Ih9AAYcOZmme
-YPgT9DBwUE/ESnRc3U/9nAbiH0Vs+eGUU04hYXdQeliH3+gG1VBs7SEgpgxfn3/q
-5jF07c87PuWmz2JLXF77eii1prilXtyZoBD1ASJJAoGBAJBoum6Kf0mMnPeO+yHl
-p460VX69OpMNmwK5Gqo9WXRt+Xeljm3EVIneWiM6+EDYS0yaRMUwYWXJK8fzrpNH
-vXCuqZYM91l6IwxDcs6gKsIP4wt8KWNr7T58/QnTjDPoOJ3qjHljvJ0BQhh4cWvw
-ar4uACF4RGnjJiOnuzWhJ9z0
------END PRIVATE KEY-----
-',//API 私钥
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDBcmSf2j2gN8Ie
++vx0GxqFDzxetgJX+sCju9wyxSiPiFGqNRp1dXyzmb0WMDZ4EHSuwhgMp9xdY6BE
+g7WxMyT0UorDZgpSTogIXxMGsykSrkOVkLDTTK4yegObvp/XwOthhbz3vrC8QEaK
+JwiQZvS3MvwVKht3kcu3OvKYDvJDMrJPubGz+eaJPUN617K9rBqxFsVhcMv2LINZ
+8pjcPlYJtUmHn+4kAKqhLV2EG6bTlKzORDAg5OhJYx2eiE6XOJZLYUDciDR1/rSy
+n9sJUk162BBpRPdyoVVobloSswyldMosKKEnKFptPQhmHT8zluEKgyQ1J+aX04v5
+NiWeRMNhAgMBAAECggEBAJUphdmUyMwP8ok88wj8FTjghKZrJed9HKmkI6iqShpS
+/NWH2P0VOLCsLRc82eM+nRpb43tuvAbu2Re7j5AxZZ9XPlRpDDBnCZGa7erOny8e
+XFKpnQ9xIykc2Edxd4M/6L/sBcfqrBCcZ0gDzSC7oprYn3QaYc+TBkglFgaWD8wr
+pdNjXPFziXXQ2nWbvnE/70MERrSTUTnaQMuBRLW9Vyo/wg4HQ5Bfk1CnvQZvmJ3b
+zhLj7VBDk2x2WQPX9Fb53VxBeRc4c2cSncgZlom3Qdj+VO8wqZ7xsLIvN/f7qqy8
+qCCH0TU0FzNICbWVJz38UZWDv2T7mOg3DBky55JNOZkCgYEA5tLeUb1dTZqECoq5
+8z9F+4nxU7GGg/xM4GAFCkqmL4zAgAu2noLMWlXnE9s0uWJ2f+zErqEqJgKPWrc5
+5I+4GdJV+rrMM299DdKtomAvgsRVNW33sU5Q0aUDK3aQeDhlvDkmuRq03CZxlaD0
+D366ftX+/q8F5zsB9vCmkffaoDcCgYEA1ovgWQ84KpxXIABTd25wfnpmy6nOOiuv
+IeiaLmm0iPihXD5+8xZ2xQgI3tRLGvd+YxzhaIiCYIZilOyr1qhdA1tVWc3gONVw
+JmE4jZGSBVgnIfUQDbhK9tx0a+ayYII3pfC8+y6zPY7OI2t9eotVN7FncEhid3c+
+HMH3soFg/ScCgYAgVfgZIVsZzQSkaWzFW97U7y0kmWELymOGp0ztdSm0zZYGGh36
+NL6mBRS7HmFTeyy4nRWslR1Pd9pXTgXJNC0JSQMMffCvX/X34sS6U5k0S4bYVlB1
+wU/nHqPECfcRMG1oIeV/1vLxSF1vJb4rEYjUzevMB/7ettB+pJXhKwSwnwKBgQDR
+tua0h2DyneG4ITl1S9ngd8sVl0VDrUHClnhnl+Hl5Yrs/RXgjfvIuwLYtZE4qeW8
+AhX/tTgkHBgu1G1gJTDOQC/c2ZYsV84JZgz+rOWcHcAavE5V6ug0B+gxNM718TNu
+HDTOHqcMLBQpoT+FUr8Y8mtW4RqHBmMLfzqdHURuDwKBgHqGTnJ0N9G1OZKIa3Pd
+IT+VHwi+LKimXMbWL8unh3n43aIPeBVD+vvEhZsx0dHlAEbJ7Fw7zTHtVuIhe73O
+342TuO4BZaOE0pl9+iOdXNxBZx3e1p2mU8fAOoPZFDaqJNRQVQHLH3P8FMChby9B
+2s3YrNc5pJxE0mtBzbZYja9B
+-----END PRIVATE KEY-----',//API 私钥
     'platformCertificate'       => '-----BEGIN PUBLIC KEY-----
 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu8bSm61/CgGJSIm+KPJd
 jxAvK3cgZaUS2YR0UrzlNeL8+4n6YqbUBoCTd2M9ZpxD/b0MHGEwJRmawkDJXj/r