Giter Site home page Giter Site logo

Comments (2)

alexz2008 avatar alexz2008 commented on June 2, 2024

测试代码如下:

func WxCouponNotifySample() {

headers := map[string]string{
	"Content-Type":        "application/json",
	"Wechatpay-Nonce":     "ri5SgbZrwKATeGy9qCPTDomESqQibc5T",
	"Wechatpay-Timestamp": "1694490266",
	"Wechatpay-Serial":    "79162C62CE1BCE443D4E362A0BE4B4A1547BF695",
	"Wechatpay-Signature": "aJNCrfpCtpBuKEgKkEg44qENHexEcZqqQng3C/P1DiT4bcyXk7+S+A2BmO1kSPlRSnKTNdZvTQfQX/gGElF/07GbKiQjk/tnuEkzOyOpyFIzGGSPP4f4zdPTvIQzbhQRylzTUn6/s8kMMYUi8Qb904CZiMTWWd9KMTaDIkwDDB0+JWqC1OnfnS0DR7LPFfFoGe3+WnT7r/+u8CvPehvFA4PtmcF9b23aMMCI20u7CN/q9RAFrYCagy3H+dBV9VSgHErJgfr79uXB2sdv1frIwK0vu8ktfYCKuqVuXxPOPev0nOZoFMKRj339NHmoC9FmYAzSbsI5YvTNM1dc4hYklA==",
}
body := `{"id":"4fd1ce56-00c0-530b-96b6-a46d09434a27","create_time":"2023-09-12T11:24:22+08:00","resource_type":"encrypt-resource","event_type":"COUPON.USE","summary":"代金券核销通知","resource":{"original_type":"coupon","algorithm":"AEAD_AES_256_GCM","ciphertext":"nRSWMUk1hgyhJzOwSXm2MzRQTEtCH9ALtDf0+GJsGEn/X2VETYwHcOggbJnaDFlXbptAuGaEBIck3B5VAvzPRMyBEzrXkSzaAqNeBlK6ol/R2CH5ZPYSUJnGbWQePEBLQ+a0MYxKlxmU3OUMuLmyj7dbZXWkz+B8rwjNSc+CUatYxJGGyTBXMuc3npt2cS821i6gQJZ83jPDvJw6gLDKHVgRgDNPbb0x6kv+QJeg16FjlplYhI36dbiEnQVOqUyVmRaCPGDAZCQ7othdVdzg5FsCcKXL1KLv53W/t/uyRissdsMochoB4rvmCXCLP09TLNuBSJ/G04laMGIRkgGhzY44+IZQlQzJpiIzlpe5hEgd2FJRuJA+XqUXNcwamvSeUDo29kjfvENexcvYo2aivjDdDhDcu5w8hmeRh9wEKrhwpSfFAGnzr97SptLFOQunHyBC3SvcIfbG46S7lLgWBNXcNDNMD9kGslmJqn1mkFGLgq3d4mSEtPjMCeRYVqvFvu0NP8accOB4ql3KWKSHeOAuTz/3SgbnkHco2/gqGSgTnmDzoaBwC8iL1GUsIymr5p22Hh0+oX6kfTGIAHgplkq2+u9s6J1gkUbeWmNHkftRKbNqgxcBQsctsaq/RECMGby0Oo49pYmtHfxbKGmG2ZdheWlRI4FNfvwvT+DDSXkebOGARdqiZtPOKdXhuGdL/BJ0vWondmRDOaWhJQMddmdrD2kz17TKf5mtnRayksKBNaPNTCoNfqbZq4vD5odnimpYt3bWlLVtppkzDHlUUA==","associated_data":"coupon","nonce":"4K4U2AMXql03"}}`

bodyBuf := &bytes.Buffer{}
bodyBuf.WriteString(body)

req := httptest.NewRequest(http.MethodGet, "http://127.0.0.1", bodyBuf)

for key, value := range headers {
	req.Header.Set(key, value)
}

mchPrivateKey, err := loadPrivateKeyFromFile(WXPay_keyFile)
if err != nil {
	fmt.Println(err.Error())
	return
}

// 1. 使用 `RegisterDownloaderWithPrivateKey` 注册下载器
err = downloader.MgrInstance().RegisterDownloaderWithPrivateKey(context.Background(), mchPrivateKey, WXPay_mchCertificateSerialNumber, WXPay_mchID, WXPay_mchAPIv3Key)
if err != nil {
	fmt.Println(err.Error())
	return
}

// 2. 获取商户号对应的微信支付平台证书访问器
certificateVisitor := downloader.MgrInstance().GetCertificateVisitor(WXPay_mchID)
handler, err := NewRSANotifyHandler(WXPay_mchAPIv3Key, verifiers.NewSHA256WithRSAVerifier(certificateVisitor))

// cert, err := utils.LoadCertificateWithPath(WXPay_PlatformCertFile)
// // cert, err := utils.LoadCertificate(wechatPayCertificate)
// if err != nil {
// 	fmt.Println("1", err.Error())
// 	return
// }

// // handler := NewNotifyHandler(WXPay_mchAPIv3Key, verifiers.NewSHA256WithRSAVerifier(core.NewCertificateMapWithList([]*x509.Certificate{cert})))
// handler, err := NewRSANotifyHandler(
// 	WXPay_mchAPIv3Key, verifiers.NewSHA256WithRSAVerifier(core.NewCertificateMapWithList([]*x509.Certificate{cert})),
// )
if err != nil {
	fmt.Println("2", err.Error())
	return
}

// content := new(WXCouponNotifyContent)

content := &WXCouponNotifyContent{}
notifyReq, err := handler.ParseNotifyRequest(context.Background(), req, content)
if err != nil {
	fmt.Println("3", err.Error())
	return
}

spew.Dump(notifyReq)

}

from wechatpay-go.

alexz2008 avatar alexz2008 commented on June 2, 2024

invalid notification, err: timestamp=[1694490266] expires; 是指时间戳过期了吗?我拿到线上实时测试下

from wechatpay-go.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.