github.com/sereiner/library@v0.0.0-20200518095232-1fa3e640cc5f/weixin/wx.go (about) 1 package weixin 2 3 import "encoding/xml" 4 5 type Wechat struct { 6 w WechatEntity 7 } 8 9 //NewWechat 创建微信加解密对象 10 func NewWechat(appid string, token string, encodingAESKey string) (w Wechat, err error) { 11 w = Wechat{} 12 w.w, err = NewWechatEntity(appid, token, encodingAESKey) 13 return 14 } 15 16 //Decrypt 解密请求报文 17 func (w Wechat) Decrypt(content string) (r string, err error) { 18 response, err := w.w.Decrypt(content) 19 if err != nil { 20 return 21 } 22 buff, err := xml.Marshal(response) 23 if err != nil { 24 return 25 } 26 r = string(buff) 27 return 28 } 29 30 //Encrypt 加密响应报文 31 func (w Wechat) Encrypt(fromUserName, toUserName, content, nonce, timestamp string) (r string, err error) { 32 buffer, err := w.w.makeEncryptResponseBody(fromUserName, toUserName, content, nonce, timestamp) 33 if err != nil { 34 return 35 } 36 r = string(buffer) 37 return 38 } 39 40 //MakeSign 构建签名 41 func (w Wechat) MakeSign(timestamp, nonce, msgEncrypt string) string { 42 return w.w.makeMsgSignature(timestamp, nonce, msgEncrypt) 43 }