Closed chenyangguang closed 5 months ago
这段代码
func ExampleHandler_ParseNotifyRequest_transaction() { var handler notify.Handler var request *http.Request content := new(payments.Transaction) notifyReq, err := handler.ParseNotifyRequest(context.Background(), request, content) if err != nil { fmt.Println(err) return } // 处理通知内容 fmt.Println(notifyReq.Summary) fmt.Println(content) }
notifyReq, err := handler.ParseNotifyRequest(context.Background(), request, content)
这行会导致空指针
并且用 http.request替代里面的值之后。报错:
unsupported Wechatpay-Signature-Type: WECHATPAY2-SHA256-RSA2048
一看是这个算法套件没初始化,
// NewRSANotifyHandler 创建一个 RSA 的通知处理器,它包含 AES-GCM 解密能力 func NewRSANotifyHandler(apiV3Key string, verifier auth.Verifier) (*Handler, error) { c, err := aes.NewCipher([]byte(apiV3Key)) if err != nil { return nil, err } aesgcm, err := cipher.NewGCM(c) if err != nil { return nil, err }
return NewEmptyHandler().AddRSAWithAESGCM(verifier, aesgcm), nil
}
但是这个算法怎么用?方便透露一个栗子么
` // Package auth 微信支付 API v3 Go SDK 安全验证相关接口 package auth
import "context"
// Verifier 数字签名验证器 type Verifier interface { Verify(ctx context.Context, serial, message, signature string) error // 对签名信息进行验证 }
` 请问这个 messsge 是啥?
handler 如何初始化可以看一下 README.md#回调通知的验签与解密
handler
这段代码
这行会导致空指针
并且用 http.request替代里面的值之后。报错:
unsupported Wechatpay-Signature-Type: WECHATPAY2-SHA256-RSA2048
一看是这个算法套件没初始化,
// NewRSANotifyHandler 创建一个 RSA 的通知处理器,它包含 AES-GCM 解密能力 func NewRSANotifyHandler(apiV3Key string, verifier auth.Verifier) (*Handler, error) { c, err := aes.NewCipher([]byte(apiV3Key)) if err != nil { return nil, err } aesgcm, err := cipher.NewGCM(c) if err != nil { return nil, err }
}
但是这个算法怎么用?方便透露一个栗子么
` // Package auth 微信支付 API v3 Go SDK 安全验证相关接口 package auth
import "context"
// Verifier 数字签名验证器 type Verifier interface { Verify(ctx context.Context, serial, message, signature string) error // 对签名信息进行验证 }
` 请问这个 messsge 是啥?