实现个人客户微信认证和短信验证功能
- 添加个人客户微信登录和手机验证码登录接口 - 实现个人客户设备、ICCID、手机号关联管理 - 添加短信发送服务(HTTP 客户端) - 添加微信认证服务(含 mock 实现) - 添加 JWT Token 生成和验证工具 - 创建数据库迁移脚本(personal_customer 关联表) - 修复测试文件中的路由注册参数错误 - 重构 scripts 目录结构(分离独立脚本到子目录) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
25
pkg/wechat/mock.go
Normal file
25
pkg/wechat/mock.go
Normal file
@@ -0,0 +1,25 @@
|
||||
package wechat
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// MockService Mock 微信服务实现(用于开发和测试)
|
||||
type MockService struct{}
|
||||
|
||||
// NewMockService 创建 Mock 微信服务
|
||||
func NewMockService() *MockService {
|
||||
return &MockService{}
|
||||
}
|
||||
|
||||
// GetUserInfo Mock 实现:通过授权码获取用户信息
|
||||
// 注意:这是一个 Mock 实现,实际生产环境需要对接微信 OAuth API
|
||||
func (s *MockService) GetUserInfo(ctx context.Context, code string) (string, string, error) {
|
||||
// TODO: 实际实现需要调用微信 OAuth2.0 接口
|
||||
// 1. 使用 code 换取 access_token
|
||||
// 2. 使用 access_token 获取用户信息
|
||||
// 参考文档: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
|
||||
|
||||
return "", "", fmt.Errorf("微信服务暂未实现,待对接微信 SDK")
|
||||
}
|
||||
21
pkg/wechat/wechat.go
Normal file
21
pkg/wechat/wechat.go
Normal file
@@ -0,0 +1,21 @@
|
||||
package wechat
|
||||
|
||||
import "context"
|
||||
|
||||
// Service 微信服务接口
|
||||
type Service interface {
|
||||
// GetUserInfo 通过授权码获取用户信息
|
||||
GetUserInfo(ctx context.Context, code string) (openID, unionID string, err error)
|
||||
}
|
||||
|
||||
// UserInfo 微信用户信息
|
||||
type UserInfo struct {
|
||||
OpenID string `json:"open_id"` // 微信 OpenID
|
||||
UnionID string `json:"union_id"` // 微信 UnionID(开放平台统一ID)
|
||||
Nickname string `json:"nickname"` // 昵称
|
||||
Avatar string `json:"avatar"` // 头像URL
|
||||
Sex int `json:"sex"` // 性别 0-未知 1-男 2-女
|
||||
Province string `json:"province"` // 省份
|
||||
City string `json:"city"` // 城市
|
||||
Country string `json:"country"` // 国家
|
||||
}
|
||||
Reference in New Issue
Block a user