util

package
v2.1.7-rc.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2024 License: Apache-2.0 Imports: 31 Imported by: 139

Documentation

Index

Constants

View Source
const (
	SignTypeMD5        = `MD5`
	SignTypeHMACSHA256 = `HMAC-SHA256`
)

微信签名算法方式

Variables

View Source
var DefaultHTTPClient = http.DefaultClient

DefaultHTTPClient 默认httpClient

Functions

func AESDecryptMsg

func AESDecryptMsg(ciphertext []byte, aesKey []byte) (random, rawXMLMsg, appID []byte, err error)

AESDecryptMsg ciphertext = AES_Encrypt[random(16B) + msg_len(4B) + rawXMLMsg + appId] 参考:github.com/chanxuehong/wechat.v2

func AESEncryptMsg

func AESEncryptMsg(random, rawXMLMsg []byte, appID string, aesKey []byte) (ciphertext []byte)

AESEncryptMsg ciphertext = AES_Encrypt[random(16B) + msg_len(4B) + rawXMLMsg + appId] 参考:github.com/chanxuehong/wechat.v2

func AesECBDecrypt added in v2.0.5

func AesECBDecrypt(ciphertext []byte, aesKey []byte) ([]byte, error)

AesECBDecrypt will decrypt data with PKCS5Padding

func CalculateSign added in v2.0.1

func CalculateSign(content, signType, key string) (string, error)

CalculateSign 计算签名

func DecodeWithCommonError

func DecodeWithCommonError(response []byte, apiName string) (err error)

DecodeWithCommonError 将返回值按照 CommonError 解析

func DecodeWithError

func DecodeWithError(response []byte, obj interface{}, apiName string) error

DecodeWithError 将返回值按照解析

func DecryptMsg

func DecryptMsg(appID, encryptedMsg, aesKey string) (random, rawMsgXMLBytes []byte, err error)

DecryptMsg 消息解密

func EncryptMsg

func EncryptMsg(random, rawXMLMsg []byte, appID, aesKey string) (encrtptMsg []byte, err error)

EncryptMsg 加密消息

func GetCurrTS added in v2.0.2

func GetCurrTS() int64

GetCurrTS return current timestamps

func HTTPGet

func HTTPGet(uri string) ([]byte, error)

HTTPGet get 请求

func HTTPGetContext added in v2.1.0

func HTTPGetContext(ctx context.Context, uri string) ([]byte, error)

HTTPGetContext get 请求

func HTTPPost

func HTTPPost(uri string, data string) ([]byte, error)

HTTPPost post 请求

func HTTPPostContext added in v2.1.0

func HTTPPostContext(ctx context.Context, uri string, data []byte, header map[string]string) ([]byte, error)

HTTPPostContext post 请求

func NewECBDecryptor added in v2.0.5

func NewECBDecryptor(b cipher.Block) cipher.BlockMode

NewECBDecryptor returns a BlockMode which decrypts in electronic code book mode, using the given Block.

func NewECBEncryptor added in v2.0.5

func NewECBEncryptor(b cipher.Block) cipher.BlockMode

NewECBEncryptor returns a BlockMode which encrypts in electronic code book mode, using the given Block.

func OrderParam

func OrderParam(p map[string]string, bizKey string) (returnStr string)

OrderParam order params

func PKCS5Padding added in v2.0.5

func PKCS5Padding(ciphertext []byte, blockSize int) []byte

PKCS5Padding -

func PKCS5UnPadding added in v2.0.5

func PKCS5UnPadding(origData []byte) []byte

PKCS5UnPadding -

func ParamSign added in v2.0.1

func ParamSign(p map[string]string, key string) (string, error)

ParamSign 计算所传参数的签名

func PostFile

func PostFile(fieldName, filename, uri string) ([]byte, error)

PostFile 上传文件

func PostJSON

func PostJSON(uri string, obj interface{}) ([]byte, error)

PostJSON post json 数据请求

func PostJSONContext added in v2.1.5

func PostJSONContext(ctx context.Context, uri string, obj interface{}) ([]byte, error)

PostJSONContext post json 数据请求

func PostJSONWithRespContentType

func PostJSONWithRespContentType(uri string, obj interface{}) ([]byte, string, error)

PostJSONWithRespContentType post json 数据请求,且返回数据类型

func PostMultipartForm

func PostMultipartForm(fields []MultipartFormField, uri string) (respBody []byte, err error)

PostMultipartForm 上传文件或其他多个字段

func PostXML

func PostXML(uri string, obj interface{}) ([]byte, error)

PostXML perform a HTTP/POST request with XML body

func PostXMLWithTLS

func PostXMLWithTLS(uri string, obj interface{}, ca, key string) ([]byte, error)

PostXMLWithTLS perform a HTTP/POST request with XML body and TLS

func Query added in v2.1.6

func Query(params map[string]interface{}) string

Query 将Map序列化为Query参数

func RSADecrypt added in v2.0.7

func RSADecrypt(privateKey string, ciphertext []byte) ([]byte, error)

RSADecrypt 数据解密

func RSADecryptBase64 added in v2.0.7

func RSADecryptBase64(privateKey string, cryptoText string) ([]byte, error)

RSADecryptBase64 Base64解码后再次进行RSA解密

func RandomStr

func RandomStr(length int) string

RandomStr 随机生成字符串

func SetURIModifier added in v2.1.6

func SetURIModifier(fn URIModifier)

SetURIModifier 设置URI修改器

func Signature

func Signature(params ...string) string

Signature sha1签名

func SliceChunk added in v2.0.5

func SliceChunk(src []string, chunkSize int) (chunks [][]string)

SliceChunk 用于将字符串切片分块

func Template added in v2.1.6

func Template(source string, data map[string]interface{}) string

Template 对字符串中的和map的key相同的字符串进行模板替换 仅支持 形如: {name}

Types

type CommonError

type CommonError struct {
	ErrCode int64  `json:"errcode"`
	ErrMsg  string `json:"errmsg"`
	// contains filtered or unexported fields
}

CommonError 微信返回的通用错误 json

func NewCommonError added in v2.1.4

func NewCommonError(apiName string, code int64, msg string) *CommonError

NewCommonError 新建 CommonError 错误,对于无 errcode 和 errmsg 的返回也可以返回该通用错误

func (*CommonError) Error added in v2.1.4

func (c *CommonError) Error() string

type ECBDecryptor added in v2.0.5

type ECBDecryptor ecb

ECBDecryptor -

func (*ECBDecryptor) BlockSize added in v2.0.5

func (x *ECBDecryptor) BlockSize() int

BlockSize implement BlockMode.BlockSize

func (*ECBDecryptor) CryptBlocks added in v2.0.5

func (x *ECBDecryptor) CryptBlocks(dst, src []byte)

CryptBlocks implement BlockMode.CryptBlocks

type ECBEncryptor added in v2.0.5

type ECBEncryptor ecb

ECBEncryptor -

func (*ECBEncryptor) BlockSize added in v2.0.5

func (x *ECBEncryptor) BlockSize() int

BlockSize implement BlockMode.BlockSize

func (*ECBEncryptor) CryptBlocks added in v2.0.5

func (x *ECBEncryptor) CryptBlocks(dst, src []byte)

CryptBlocks implement BlockMode.CryptBlocks

type MultipartFormField

type MultipartFormField struct {
	IsFile    bool
	Fieldname string
	Value     []byte
	Filename  string
}

MultipartFormField 保存文件或其他字段信息

type URIModifier added in v2.1.6

type URIModifier func(uri string) string

URIModifier URI修改器

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL