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  }