diff --git a/miniprogram/basic/basic.go b/miniprogram/basic/basic.go deleted file mode 100644 index 3d1df74..0000000 --- a/miniprogram/basic/basic.go +++ /dev/null @@ -1,15 +0,0 @@ -package basic - -import "github.com/silenceper/wechat/v2/miniprogram/context" - -//Basic struct -type Basic struct { - *context.Context -} - -//NewBasic 实例 -func NewBasic(context *context.Context) *Basic { - basic := new(Basic) - basic.Context = context - return basic -} diff --git a/miniprogram/basic/decrypt.go b/miniprogram/encryptor/encryptor.go similarity index 73% rename from miniprogram/basic/decrypt.go rename to miniprogram/encryptor/encryptor.go index b780c77..e9b4b76 100644 --- a/miniprogram/basic/decrypt.go +++ b/miniprogram/encryptor/encryptor.go @@ -1,4 +1,4 @@ -package basic +package encryptor import ( "crypto/aes" @@ -6,8 +6,23 @@ import ( "encoding/base64" "encoding/json" "errors" + + "github.com/silenceper/wechat/v2/miniprogram/context" ) +//Encryptor struct +type Encryptor struct { + *context.Context +} + +//NewEncryptor 实例 +func NewEncryptor(context *context.Context) *Encryptor { + basic := new(Encryptor) + basic.Context = context + return basic +} + + var ( // ErrAppIDNotMatch appid不匹配 ErrAppIDNotMatch = errors.New("app id not match") @@ -19,8 +34,8 @@ var ( ErrInvalidPKCS7Padding = errors.New("invalid padding on input") ) -// UserInfo 用户信息 -type UserInfo struct { +// PlainData 用户信息/手机号信息 +type PlainData struct { OpenID string `json:"openId"` UnionID string `json:"unionId"` NickName string `json:"nickName"` @@ -30,18 +45,10 @@ type UserInfo struct { Country string `json:"country"` AvatarURL string `json:"avatarUrl"` Language string `json:"language"` - Watermark struct { - Timestamp int64 `json:"timestamp"` - AppID string `json:"appid"` - } `json:"watermark"` -} - -// PhoneInfo 用户手机号 -type PhoneInfo struct { PhoneNumber string `json:"phoneNumber"` PurePhoneNumber string `json:"purePhoneNumber"` CountryCode string `json:"countryCode"` - Watermark struct { + Watermark struct { Timestamp int64 `json:"timestamp"` AppID string `json:"appid"` } `json:"watermark"` @@ -96,35 +103,18 @@ func getCipherText(sessionKey, encryptedData, iv string) ([]byte, error) { } // Decrypt 解密数据 -func (basic *Basic) Decrypt(sessionKey, encryptedData, iv string) (*UserInfo, error) { +func (encryptor *Encryptor) Decrypt(sessionKey, encryptedData, iv string) (*PlainData, error) { cipherText, err := getCipherText(sessionKey, encryptedData, iv) if err != nil { return nil, err } - var userInfo UserInfo - err = json.Unmarshal(cipherText, &userInfo) + var plainData PlainData + err = json.Unmarshal(cipherText, &plainData) if err != nil { return nil, err } - if userInfo.Watermark.AppID != basic.AppID { + if plainData.Watermark.AppID != encryptor.AppID { return nil, ErrAppIDNotMatch } - return &userInfo, nil -} - -// DecryptPhone 解密数据(手机) -func (basic *Basic) DecryptPhone(sessionKey, encryptedData, iv string) (*PhoneInfo, error) { - cipherText, err := getCipherText(sessionKey, encryptedData, iv) - if err != nil { - return nil, err - } - var phoneInfo PhoneInfo - err = json.Unmarshal(cipherText, &phoneInfo) - if err != nil { - return nil, err - } - if phoneInfo.Watermark.AppID != basic.AppID { - return nil, ErrAppIDNotMatch - } - return &phoneInfo, nil + return &plainData, nil } diff --git a/miniprogram/miniprogram.go b/miniprogram/miniprogram.go index bbb2572..028fd1f 100644 --- a/miniprogram/miniprogram.go +++ b/miniprogram/miniprogram.go @@ -4,7 +4,7 @@ import ( "github.com/silenceper/wechat/v2/credential" "github.com/silenceper/wechat/v2/miniprogram/analysis" "github.com/silenceper/wechat/v2/miniprogram/auth" - "github.com/silenceper/wechat/v2/miniprogram/basic" + "github.com/silenceper/wechat/v2/miniprogram/encryptor" "github.com/silenceper/wechat/v2/miniprogram/config" "github.com/silenceper/wechat/v2/miniprogram/context" "github.com/silenceper/wechat/v2/miniprogram/qrcode" @@ -36,9 +36,9 @@ func (miniProgram *MiniProgram) GetContext() *context.Context { return miniProgram.ctx } -// GetBasic 基础接口(小程序加解密) -func (miniProgram *MiniProgram) GetBasic() *basic.Basic { - return basic.NewBasic(miniProgram.ctx) +// GetEncryptor 小程序加解密 +func (miniProgram *MiniProgram) GetEncryptor() *encryptor.Encryptor { + return encryptor.NewEncryptor(miniProgram.ctx) } //GetAuth 登录/用户信息相关接口 diff --git a/openplatform/miniprogram/basic/basic.go b/openplatform/miniprogram/basic/basic.go index 6a5ef55..41389f0 100644 --- a/openplatform/miniprogram/basic/basic.go +++ b/openplatform/miniprogram/basic/basic.go @@ -48,5 +48,5 @@ func (basic *Basic) GetAccountBasicInfo() (*AccountBasicInfo, error) { //modify_domain设置服务器域名 //TODO -//func (basic *Basic) modifyDomain() { +//func (encryptor *Basic) modifyDomain() { //}