Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
promotion-service
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
promotion
promotion-service
Commits
64c7a533
提交
64c7a533
authored
4月 07, 2025
作者:
李秋林
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
微信小程序快速获取手机号组件防刷(每天最多可以获取5次)
上级
d2fe551d
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
43 行增加
和
19 行删除
+43
-19
MiappInfoController.java
...lu/promotion/controller/user/tem/MiappInfoController.java
+43
-12
TencentUtils.java
...ain/java/com/wangxiaolu/promotion/utils/TencentUtils.java
+0
-7
没有找到文件。
src/main/java/com/wangxiaolu/promotion/controller/user/tem/MiappInfoController.java
浏览文件 @
64c7a533
package
com
.
wangxiaolu
.
promotion
.
controller
.
user
.
tem
;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.wangxiaolu.promotion.common.redis.RedisKeys
;
import
com.wangxiaolu.promotion.common.redis.service.RedisCache
;
import
com.wangxiaolu.promotion.exception.FlowException
;
import
com.wangxiaolu.promotion.result.basedata.R
;
import
com.wangxiaolu.promotion.result.basedata.RCode
;
import
com.wangxiaolu.promotion.utils.TencentUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.
Map
;
import
java.util.
Objects
;
/**
* @author : liqiulin
...
...
@@ -15,28 +21,53 @@ import java.util.Map;
* @describe :
*/
@RestController
@RequestMapping
(
"/wechat/miniapp
/
"
)
@RequestMapping
(
"/wechat/miniapp"
)
public
class
MiappInfoController
{
@Autowired
private
TencentUtils
tencentUtils
;
@Autowired
private
RedisCache
redisCache
;
/**
* 获取小程序信息
* @return
* 获取小程序信息 access_token
*/
@GetMapping
(
"/wxtoken"
)
public
R
getCX
()
{
return
R
.
success
(
tencentUtils
.
getMiniappToken
());
}
// @GetMapping("/wxtoken")
// public R getCX() {
// return R.success(tencentUtils.getMiniappToken());
// }
@GetMapping
(
"/phone"
)
public
R
getPhone
(
String
accessToken
,
String
code
){
return
R
.
success
(
tencentUtils
.
getUserPhoneByAccessToken
(
accessToken
,
code
));
public
R
getPhone
(
String
openId
,
String
code
)
{
// 检测当前openId获取phone的次数
checkPhone
(
openId
);
JSONObject
tokenJson
=
tencentUtils
.
getMiniappToken
();
JSONObject
phoneJson
=
tencentUtils
.
getUserPhoneByAccessToken
(
tokenJson
.
getString
(
"access_token"
),
code
);
return
R
.
success
(
phoneJson
);
}
@GetMapping
(
"/openid"
)
public
R
getOpenid
(
String
jsCode
){
public
R
getOpenid
(
String
jsCode
)
{
return
R
.
success
(
tencentUtils
.
getOpenid
(
jsCode
));
}
private
synchronized
void
checkPhone
(
String
openId
)
{
String
key
=
RedisKeys
.
TemporaryKeys
.
TEMPORARY_LOGIN_OPENID_COUNT
.
getKey
();
key
=
key
+
DateUtil
.
today
()
+
"_"
+
openId
;
String
countStr
=
redisCache
.
get
(
key
);
if
(
Objects
.
isNull
(
countStr
))
{
countStr
=
String
.
valueOf
(
1
);
redisCache
.
addToMinute
(
key
,
countStr
,
1440
);
return
;
}
Integer
count
=
Integer
.
valueOf
(
countStr
);
count
+=
1
;
if
(
count
>=
6
)
{
throw
new
FlowException
(
RCode
.
LOGIN_PHONE_COUNT_MUCH
);
}
countStr
=
String
.
valueOf
(
count
);
redisCache
.
addToMinute
(
key
,
countStr
,
1440
);
}
}
src/main/java/com/wangxiaolu/promotion/utils/TencentUtils.java
浏览文件 @
64c7a533
...
...
@@ -13,14 +13,10 @@ import com.tencentcloudapi.sms.v20210111.models.SendStatus;
import
com.wangxiaolu.promotion.exception.ParamException
;
import
com.wangxiaolu.promotion.result.basedata.RCode
;
import
lombok.extern.slf4j.Slf4j
;
import
okhttp3.OkHttpClient
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.groovy.util.Maps
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
java.util.Map
;
/**
* @author : liqiulin
* @date : 2024-04-15 15
...
...
@@ -60,9 +56,6 @@ public class TencentUtils {
@Value
(
"${wx.cx_miniapp.app_secret}"
)
private
String
xltAppSecret
;
public
Map
<
String
,
String
>
getCX
()
{
return
Maps
.
of
(
"appId"
,
xltAppId
,
"appSecret"
,
xltAppSecret
);
}
/**
* 给指定手机号发送验证码
*
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论