Documentation ¶
Index ¶
- Constants
- func DecryptAES256GCM(aesKey, associatedData, nonce, ciphertext string) (plaintext string, err error)
- func DeepCopy(src interface{}) (interface{}, error)
- func DownloadFileFromURL(fileURL string) (string, error)
- func GenerateSignHmacSHA256(params *power.StringMap, key string) string
- func GenerateSignMD5(params *power.StringMap, key string) string
- func GetFileExtensionFromResponse(resp *http.Response) string
- func GetFileNameFromURL(fileURL string, resp *http.Response) string
- func PaymentV2ParamsJoin(params *power.StringMap, key string) string
- func PaymentV2ParamsJoinBackup(params *power.HashMap, key string) string
- func SignSHA256WithHMac(sessionKey []byte, input string) ([]byte, error)
- func SignSHA256WithRSA(source string, privateKey *rsa.PrivateKey) (signature string, err error)
- type AES
- type CryptError
- type Observable
- func (observable *Observable) Dispatch(request *http.Request, event int, header contract.EventInterface, ...) interface{}
- func (observable *Observable) Observe(condition int, handler contract.EventHandlerInterface) *Observable
- func (observable *Observable) On(condition int, handler contract.EventHandlerInterface) *Observable
- func (observable *Observable) Push(closure contract.EventHandlerInterface, condition int) *Observable
- func (observable *Observable) PushMessage(closure contract.EventHandlerInterface, condition int) *Observable
- func (observable *Observable) SetHandlers(handlers [][]*contract.EventHandlerInterface) *Observable
- type RSAOaep
- type RequestSignChain
- type ResponseCastable
- type SHA256WithRSASigner
- func (s *SHA256WithRSASigner) Algorithm() string
- func (s *SHA256WithRSASigner) GenerateRequestSign(signChain *RequestSignChain) (authorization string, err error)
- func (s *SHA256WithRSASigner) GenerateSign(message string) (sign string, err error)
- func (s *SHA256WithRSASigner) GetAuthorizationType() string
- func (s *SHA256WithRSASigner) Sign(_ context.Context, message string) (*SignatureResult, error)
- type SignatureResult
Constants ¶
const ( ErrorBase64Decode = -40010 // base64 解码失败 ErrorEncryptAes = -40006 // AES 加密失败 ErrorDecryptAes = -40007 // AES 解密失败 ErrorInvalidAesKey = -40004 // AESKey 非法 ErrorInvalidIv = -10001 // AESKey 非法 )
const ( SignatureMessageFormat = "%s\n%s\n%s\n%s\n%s\n" // 数字签名原文格式 // HeaderAuthorizationFormat 请求头中的 Authorization 拼接格式 HeaderAuthorizationFormat = "%s mchid=\"%s\",nonce_str=\"%s\",timestamp=\"%d\",serial_no=\"%s\",signature=\"%s\"" )
请求报文签名相关常量
Variables ¶
This section is empty.
Functions ¶
func DecryptAES256GCM ¶
func DecryptAES256GCM(aesKey, associatedData, nonce, ciphertext string) (plaintext string, err error)
DecryptAES256GCM 使用 AEAD_AES_256_GCM 算法进行解密
你可以使用此算法完成微信支付平台证书和回调报文解密,详见: https://wechatpay-api.gitbook.io/wechatpay-api-v3/qian-ming-zhi-nan-1/zheng-shu-he-hui-tiao-bao-wen-jie-mi
func DownloadFileFromURL ¶ added in v3.2.52
downloadFileFromURL 从URL下载文件并保存到本地临时文件
func GenerateSignHmacSHA256 ¶
GenerateSignHmacSHA256 适用于微信支付V2 HMAC-SHA256签名算法 https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=4_3
func GenerateSignMD5 ¶
GenerateSignMD5 适用于微信支付V2 MD5签名算法 https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=4_3
func GetFileExtensionFromResponse ¶ added in v3.2.52
getFileExtensionFromResponse 根据响应的Content-Type获取文件扩展名
func GetFileNameFromURL ¶ added in v3.2.52
getFileNameFromURL 从URL中提取并解码文件名,若无扩展名则根据Content-Type推断
func SignSHA256WithHMac ¶ added in v3.2.20
func SignSHA256WithRSA ¶
func SignSHA256WithRSA(source string, privateKey *rsa.PrivateKey) (signature string, err error)
SignSHA256WithRSA 通过私钥对字符串以 SHA256WithRSA 算法生成签名信息
Types ¶
type AES ¶
type AES struct{}
func (AES) Decrypt ¶
func (a AES) Decrypt(cipherText string, key, iv []byte) ([]byte, *CryptError)
Decrypt AES解密 cipherText 是密文的base64字符串 key和iv是经过反base64之后的byte内容 例如:原始值是"tiihtNczf5v6AKRyjwEUhQ==",那么应该用base64.StdEncoding.DecodeString("tiihtNczf5v6AKRyjwEUhQ==")解码之后传过来
func (*AES) PKCS7Padding ¶
PKCS7Padding PKCS#7 padding.
func (*AES) PKCS7UnPadding ¶
func (a *AES) PKCS7UnPadding(text []byte) ([]byte, *CryptError)
PKCS7UnPadding KCS#7 unPadding.
type CryptError ¶
func NewCryptError ¶
func NewCryptError(errCode int, errMsg string) *CryptError
type Observable ¶
type Observable struct {
// contains filtered or unexported fields
}
func NewObservable ¶
func NewObservable() *Observable
func (*Observable) Dispatch ¶
func (observable *Observable) Dispatch(request *http.Request, event int, header contract.EventInterface, content interface{}) interface{}
func (*Observable) Observe ¶
func (observable *Observable) Observe(condition int, handler contract.EventHandlerInterface) *Observable
func (*Observable) On ¶
func (observable *Observable) On(condition int, handler contract.EventHandlerInterface) *Observable
func (*Observable) Push ¶
func (observable *Observable) Push(closure contract.EventHandlerInterface, condition int) *Observable
func (*Observable) PushMessage ¶
func (observable *Observable) PushMessage(closure contract.EventHandlerInterface, condition int) *Observable
func (*Observable) SetHandlers ¶
func (observable *Observable) SetHandlers(handlers [][]*contract.EventHandlerInterface) *Observable
type RSAOaep ¶
type RSAOaep struct { PublicKeyPath string // RSA公钥路径,会自动读取出*rsa.PrivateKey PublicKey *rsa.PublicKey PrivateKeyPath string PrivateKey *rsa.PrivateKey }
func (*RSAOaep) DecryptOAEP ¶
type RequestSignChain ¶
type RequestSignChain struct { Method string // 接口提交方法。http.MethodPost, http.MethodPost等 CanonicalURL string // 微信支付接口路径。 例如: /v3/pay/transactions/jsapi SignBody string // 提交的body字符串。 例如; {"amount":{"total":1},"appid":"ww16143ea0101327c7","attach":"自定义数据说明","description":"Image形象店-深圳腾大-QQ公仔","mchid":"1611854986","notify_url":"https://pay.wangchaoyi.com/wx/notify","out_trade_no":"5519778939773395659222199361","payer":{"openid":"oAuaP0TRUMwP169nQfg7XCEAw3HQ"}} // contains filtered or unexported fields }
type ResponseCastable ¶
type ResponseCastable struct { }
func (*ResponseCastable) CastResponseToType ¶
func (responseCastable *ResponseCastable) CastResponseToType(response *http.Response, castType string) (interface{}, error)
func (*ResponseCastable) DetectAndCastResponseToType ¶
func (responseCastable *ResponseCastable) DetectAndCastResponseToType(response interface{}, toType string) (interface{}, error)
type SHA256WithRSASigner ¶
type SHA256WithRSASigner struct { MchID string // 商户号 CertificateSerialNo string // 商户证书序列号 PrivateKeyPath string // 商户私钥路径,会自动读取出*rsa.PrivateKey PrivateKey *rsa.PrivateKey // 商户私钥 }
SHA256WithRSASigner Sha256WithRSA 数字签名生成器
func (*SHA256WithRSASigner) Algorithm ¶
func (s *SHA256WithRSASigner) Algorithm() string
Algorithm 返回使用的签名算法:SHA256-RSA2048
func (*SHA256WithRSASigner) GenerateRequestSign ¶
func (s *SHA256WithRSASigner) GenerateRequestSign(signChain *RequestSignChain) (authorization string, err error)
func (*SHA256WithRSASigner) GenerateSign ¶
func (s *SHA256WithRSASigner) GenerateSign(message string) (sign string, err error)
func (*SHA256WithRSASigner) GetAuthorizationType ¶
func (s *SHA256WithRSASigner) GetAuthorizationType() string
func (*SHA256WithRSASigner) Sign ¶
func (s *SHA256WithRSASigner) Sign(_ context.Context, message string) (*SignatureResult, error)
Sign 对信息使用 SHA256WithRSA 算法进行签名
type SignatureResult ¶
type SignatureResult struct { MchID string // 商户号 CertificateSerialNo string // 签名对应的证书序列号 Signature string // 签名内容 }
SignatureResult 数字签名结果