util

package
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Aug 27, 2024 License: Apache-2.0 Imports: 31 Imported by: 1

Documentation

Index

Constants

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

微信签名算法方式

Variables

This section is empty.

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

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

AesECBDecrypt will decrypt data with PKCS5Padding

func CalculateSign

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

func GetCurrTS() int64

GetCurrTS return current timestamps

func HTTPGet

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

HTTPGet get 请求

func HTTPGetContext

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

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

HTTPPostContext post 请求

func NewECBDecryptor

func NewECBDecryptor(b cipher.Block) cipher.BlockMode

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

func NewECBEncryptor

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

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

PKCS5Padding -

func PKCS5UnPadding

func PKCS5UnPadding(origData []byte) []byte

PKCS5UnPadding -

func ParamSign

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

ParamSign 计算所传参数的签名

func PostFile

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

PostFile 上传文件

func PostFileFromReader added in v0.4.0

func PostFileFromReader(filedName, fileName, uri string, reader io.Reader) ([]byte, error)

PostFileFromReader 上传文件,从 io.Reader 中读取

func PostJSONContext added in v0.2.3

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)

func PostXML

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

PostXML perform HTTP/POST request with XML body

func PostXMLWithTLS

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

PostXMLWithTLS perform HTTP/POST request with XML body and TLS

func Query added in v0.2.3

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

Query 将Map序列化为Query参数

func RSADecrypt

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

RSADecrypt 数据解密

func RSADecryptBase64

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

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

func RandomStr

func RandomStr(length int) string

RandomStr 随机生成字符串

func SetURIModifier added in v0.2.8

func SetURIModifier(fn URIModifier)

SetURIModifier 设置URI修改器

func Signature

func Signature(params ...string) string

Signature sha1签名

func SliceChunk

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

SliceChunk 用于将字符串切片分块

func Template added in v0.2.3

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 v0.2.0

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

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

func (*CommonError) Error added in v0.1.7

func (c *CommonError) Error() string

type ECBDecryptor

type ECBDecryptor ecb

ECBDecryptor -

func (*ECBDecryptor) BlockSize

func (x *ECBDecryptor) BlockSize() int

BlockSize implement BlockMode.BlockSize

func (*ECBDecryptor) CryptBlocks

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

CryptBlocks implement BlockMode.CryptBlocks

type ECBEncryptor

type ECBEncryptor ecb

ECBEncryptor -

func (*ECBEncryptor) BlockSize

func (x *ECBEncryptor) BlockSize() int

BlockSize implement BlockMode.BlockSize

func (*ECBEncryptor) CryptBlocks

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

CryptBlocks implement BlockMode.CryptBlocks

type MultipartFormField

type MultipartFormField struct {
	IsFile     bool
	Fieldname  string
	Value      []byte
	Filename   string
	FileReader io.Reader
}

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

type URIModifier added in v0.2.8

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