1
0
mirror of https://github.com/silenceper/wechat.git synced 2026-02-04 12:52:27 +08:00

[feature] Format the code and improve Mini Program authorization to o… (#473)

* [feature] Format the code and improve Mini Program authorization to obtain openid(miniprogram/auth/auth.go Code2Session)

* [feature] CheckEncryptedData (https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/user-info/auth.checkEncryptedData.html)

* upgrade json error

* upgrade json error

Co-authored-by: houseme <houseme@outlook.com>
This commit is contained in:
houseme
2021-09-08 11:03:23 +08:00
committed by GitHub
parent 47adf42208
commit 96c1f98944
90 changed files with 787 additions and 760 deletions

View File

@@ -40,7 +40,7 @@ func EncryptMsg(random, rawXMLMsg []byte, appID, aesKey string) (encrtptMsg []by
}
// AESEncryptMsg ciphertext = AES_Encrypt[random(16B) + msg_len(4B) + rawXMLMsg + appId]
//参考github.com/chanxuehong/wechat.v2
// 参考github.com/chanxuehong/wechat.v2
func AESEncryptMsg(random, rawXMLMsg []byte, appID string, aesKey []byte) (ciphertext []byte) {
const (
BlockSize = 32 // PKCS#7
@@ -123,7 +123,7 @@ func aesKeyDecode(encodedAESKey string) (key []byte, err error) {
}
// AESDecryptMsg ciphertext = AES_Encrypt[random(16B) + msg_len(4B) + rawXMLMsg + appId]
//参考github.com/chanxuehong/wechat.v2
// 参考github.com/chanxuehong/wechat.v2
func AESDecryptMsg(ciphertext []byte, aesKey []byte) (random, rawXMLMsg, appID []byte, err error) {
const (
BlockSize = 32 // PKCS#7

View File

@@ -17,7 +17,7 @@ import (
"golang.org/x/crypto/pkcs12"
)
//HTTPGet get 请求
// HTTPGet get 请求
func HTTPGet(uri string) ([]byte, error) {
response, err := http.Get(uri)
if err != nil {
@@ -31,7 +31,7 @@ func HTTPGet(uri string) ([]byte, error) {
return ioutil.ReadAll(response.Body)
}
//HTTPPost post 请求
// HTTPPost post 请求
func HTTPPost(uri string, data string) ([]byte, error) {
body := bytes.NewBuffer([]byte(data))
response, err := http.Post(uri, "", body)
@@ -46,7 +46,7 @@ func HTTPPost(uri string, data string) ([]byte, error) {
return ioutil.ReadAll(response.Body)
}
//PostJSON post json 数据请求
// PostJSON post json 数据请求
func PostJSON(uri string, obj interface{}) ([]byte, error) {
jsonBuf := new(bytes.Buffer)
enc := json.NewEncoder(jsonBuf)
@@ -91,7 +91,7 @@ func PostJSONWithRespContentType(uri string, obj interface{}) ([]byte, string, e
return responseData, contentType, err
}
//PostFile 上传文件
// PostFile 上传文件
func PostFile(fieldname, filename, uri string) ([]byte, error) {
fields := []MultipartFormField{
{
@@ -103,7 +103,7 @@ func PostFile(fieldname, filename, uri string) ([]byte, error) {
return PostMultipartForm(fields, uri)
}
//MultipartFormField 保存文件或其他字段信息
// MultipartFormField 保存文件或其他字段信息
type MultipartFormField struct {
IsFile bool
Fieldname string
@@ -111,7 +111,7 @@ type MultipartFormField struct {
Filename string
}
//PostMultipartForm 上传文件或其他多个字段
// PostMultipartForm 上传文件或其他多个字段
func PostMultipartForm(fields []MultipartFormField, uri string) (respBody []byte, err error) {
bodyBuf := &bytes.Buffer{}
bodyWriter := multipart.NewWriter(bodyBuf)
@@ -163,7 +163,7 @@ func PostMultipartForm(fields []MultipartFormField, uri string) (respBody []byte
return
}
//PostXML perform a HTTP/POST request with XML body
// PostXML perform a HTTP/POST request with XML body
func PostXML(uri string, obj interface{}) ([]byte, error) {
xmlData, err := xml.Marshal(obj)
if err != nil {
@@ -183,7 +183,7 @@ func PostXML(uri string, obj interface{}) ([]byte, error) {
return ioutil.ReadAll(response.Body)
}
//httpWithTLS CA证书
// httpWithTLS CA证书
func httpWithTLS(rootCa, key string) (*http.Client, error) {
var client *http.Client
certData, err := ioutil.ReadFile(rootCa)
@@ -202,7 +202,7 @@ func httpWithTLS(rootCa, key string) (*http.Client, error) {
return client, nil
}
//pkcs12ToPem 将Pkcs12转成Pem
// pkcs12ToPem 将Pkcs12转成Pem
func pkcs12ToPem(p12 []byte, password string) tls.Certificate {
blocks, err := pkcs12.ToPEM(p12, password)
defer func() {
@@ -224,7 +224,7 @@ func pkcs12ToPem(p12 []byte, password string) tls.Certificate {
return cert
}
//PostXMLWithTLS perform a HTTP/POST request with XML body and TLS
// PostXMLWithTLS perform a HTTP/POST request with XML body and TLS
func PostXMLWithTLS(uri string, obj interface{}, ca, key string) ([]byte, error) {
xmlData, err := xml.Marshal(obj)
if err != nil {

View File

@@ -7,7 +7,7 @@ import (
"sort"
)
//Signature sha1签名
// Signature sha1签名
func Signature(params ...string) string {
sort.Strings(params)
h := sha1.New()

View File

@@ -3,7 +3,7 @@ package util
import "testing"
func TestSignature(t *testing.T) {
//abc sig
// abc sig
abc := "a9993e364706816aba3e25717850c26c9cd0d89d"
if abc != Signature("a", "b", "c") {
t.Error("test Signature Error")

View File

@@ -5,7 +5,7 @@ import (
"time"
)
//RandomStr 随机生成字符串
// RandomStr 随机生成字符串
func RandomStr(length int) string {
str := "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
bytes := []byte(str)

View File

@@ -2,7 +2,7 @@ package util
import "time"
//GetCurrTS return current timestamps
// GetCurrTS return current timestamps
func GetCurrTS() int64 {
return time.Now().Unix()
}

View File

@@ -1,6 +1,6 @@
package util
//SliceChunk 用于将字符串切片分块
// SliceChunk 用于将字符串切片分块
func SliceChunk(src []string, chunkSize int) (chunks [][]string) {
total := len(src)
chunks = make([][]string, 0)