Merge branch 'pro' into dev

This commit is contained in:
ziming 2026-03-27 16:05:48 +08:00
commit ae09a7509b
2 changed files with 16 additions and 14 deletions

View File

@ -26,8 +26,8 @@ func Test_Get(t *testing.T) {
return
}
t.Logf("响应体:", string(respBody))
t.Logf("响应头:", respHeader)
t.Logf("响应体:%s", string(respBody))
t.Logf("响应头:%+v", respHeader)
}
func Test_RequestHeaders(t *testing.T) {
@ -45,8 +45,8 @@ func Test_RequestHeaders(t *testing.T) {
return
}
t.Logf("响应体:", string(respBody))
t.Logf("响应头:", respHeader)
t.Logf("响应体:%s", string(respBody))
t.Logf("响应头:%+v", respHeader)
}
func Test_RequestStatusCode(t *testing.T) {
@ -64,26 +64,27 @@ func Test_RequestStatusCode(t *testing.T) {
return
}
t.Logf("响应体:", string(respBody))
t.Logf("响应头:", respHeader)
t.Logf("响应体:%s", string(respBody))
t.Logf("响应头:%+v", respHeader)
}
func Test_WxNotifyRequest(t *testing.T) {
uri := "https://gateway.dev.cdlsxd.cn/voucher/v1/notify/1100040695"
//uri := "https://voucher.86698.cn/voucher/v1/notify/1100040695"
body := []byte(`{"id":"fd06376a-3e1b-5516-81f8-9b69cf1ba416","create_time":"2025-07-28T16:10:15+08:00","resource_type":"encrypt-resource","event_type":"MCHTRANSFER.BILL.FINISHED","summary":"商家转账单据终态通知","resource":{"original_type":"mch_payment","algorithm":"AEAD_AES_256_GCM","ciphertext":"XJBIhrHgbe9NR5q/jLYmZKdT/3xuKm2x7EFu3T52Hj2hjPzarRSA2HCsGTxGojfD+CFyJHIULlL2adqLijAjpi3B6TaYKY4LqhtJ/RYSQtYNxYvBpWX1yLOWe8luJbWxmQvKZxIekFs8lGVgkPBUw0IfEAvJ6jHAGCcgxLIqxgOf6UtGUqxCCNp/V3xy8zCiHB0Mvlw8eXCTuG+ZESJIXvloVGNS79R6iNeqk4kNKRSaV86MNh1KQlmoBxZ4yEshD/vIlMulU3xEc+mM25y8vUS4Ot6pxEpUdUyjwcb9QTwTTnZzm6i+VWYymcItAVBQrvsKBMmqWnPtNXG8++13k3DeO1LyVKURmnWXXT1mImmGx/teN/1xPV5y6nChu/HTbcJGDQy2twuq6TPFbbYlTjZH047z/ZtozJNvGNeh","associated_data":"mch_payment","nonce":"YN3eW5H8mxLs"}}`)
bodyBytes := []byte(`{"id":"0e92e862-66b0-55a3-b1da-0e54a820b923","create_time":"2026-03-27T14:20:12+08:00","resource_type":"encrypt-resource","event_type":"COUPON.USE","summary":"代金券核销通知","resource":{"original_type":"coupon","algorithm":"AEAD_AES_256_GCM","ciphertext":"LFFqFfGIu1uHYbKwqxND29QS7sH54U1k9uj+W5ecKf0ZzBT8YzikcSqa6W0iIcpnlQE0AJkDxs/nfJQ/pcRJajwy+4JzE8fzrMmhn1vgvUiXt+EyvJ8mPJwfVMtg8YtMuQBUUPxIyc5ACZVawGDVlwG9nxFYCGF0jZAtzKdwZw2MMmGFTCJri6kCE60hic5Yn3b9iPaCwmXdFlVKA6NozMEp2uNoQYYzy1+OEAfyXHyspz0IQnhUFcVuxfnGbK4zJQYUZ8yGhg3YfNFTtDW0vRTBwkNeR8BWy/LXSKMZJ7sC+SaX7eASd0QHXA/UPWpItCQGRDeZHUXWEQw6yB3GpHfKRTlO5H7VINLVe9pj+XWnXMzDEqDShpUnCP3cgf7TBYykopXPKXfI/bekTxy6ZWbikQH1Ts9lc/AMqd3NK7H5AmQPNld6DkBkt1jgI/DP5tUJeyQyYX39fX0pJCFpy94AQhXyPXLKT2VQHmnX3qnaQyztgY7GfvavtmgTNFunKcnqXtgU65wpg156iTGhHyoG01msdoUMjynY7pbdUHM1O/ljsizysqiGBvYaDfhx4Mcf8Fd3kT5bbuelM2DLg7nycz9ZjPrsKWz47eNG2U3hixk6yVxrBpAsO4QM7/ngB1+5Z7Pv06nSoP7jnFxIMv9iwPn5Y+O5tb1JfO/2su7UTtDcY25iJBqiKJvwgtzy9IB1hR781PPNzHVDT9ORUfJVVlrkGgaOn7aMDyzv3DYYUkK0fTENAReCa7D/wrajM6U6Gu8Z1/TfKkJ9BdwbEqI=","associated_data":"coupon","nonce":"b2AW4NUIk2AX"}}`)
hds := `{"Accept":["*/*"],"Cache-Control":["no-cache"],"Connection":["close"],"Content-Length":["775"],"Content-Type":["application/json"],"Pragma":["no-cache"],"User-Agent":["Mozilla/4.0"],"Wechatpay-Nonce":["dF8R9izUJnPBjVLa2cAcCaa7j6QUgitl"],"Wechatpay-Serial":["PUB_KEY_ID_0116523224422025061800192371001800"],"Wechatpay-Signature":["SoXIiTRTr6jofXXxGlfO+wyf1IzXFXcsfvEU2EggQfRKFu+8h3TT6QMQ8zIf8dpkkTPexB/3igGiATrR3uZY4ZeOpRrhIFHSJj0Ala0Ri2Nt4zk+MuBQnhybSYJ4Cn3/sHC4i2HFoOSil7OqlSr79hjod3h0tjYVQLtZ4+Cjp0IeMNB4p5qmIuERuhtfRqcyqXik9/uYNYxw8/Wkf1mMnTsBxyXK3iHAoinXNrEiqCCrQHCfnORMYosr7l+Ox8v9u1c8FFt+rt09vKssVCqYaZ/XRala3mjslDRiluFKSuqb7/JO3AxQjBK6M0iSZOlnmiXSIAq+UxJg4cem6wHi+g=="],"Wechatpay-Signature-Type":["WECHATPAY2-SHA256-RSA2048"],"Wechatpay-Timestamp":["1753690220"],"X-Forwarded-For":["121.51.58.168"],"X-Forwarded-Proto":["https"],"X-Real-Ip":["121.51.58.168"]}`
header := `{"Accept":["*/*"],"Cache-Control":["no-cache"],"Connection":["close"],"Content-Length":["1109"],"Content-Type":["application/json"],"Pragma":["no-cache"],"User-Agent":["Mozilla/4.0"],"Wechatpay-Nonce":["OaVm4rYgmQnOzu9dra2OM9J560D5uuLh"],"Wechatpay-Serial":["PUB_KEY_ID_0111000406952026032500382251001000"],"Wechatpay-Signature":["QUnj2WwPfh3nAycuwQ/7zFVjhSHObnFfmfLnPx/4UXjgFlkY1REyCHrBHrJ1lDpUOodiY5qsGg/7CQ6aMlXZe24xsLOBjwOgZr0JGmsRisrwnQL+jy6ar8pAf1fABv+e/lCLO+UZtLXrv1GCQix51GLerkELEVTQkn6qzT4aVyL1Ukte6hk+r3HlWOQC6OM3cpxyr8XhVilGWaElRCgPwHI2XYLGjH6QWtcRnCSMESLFGOwI7t9GbxgGLptEelfmVpBHdRFTDWa8rWJI7b9ArI//vMawkJUE7tW5nkqF5sWMydKUQ5ZDLf5oI447zic/LOljZ4SA7I/aTN4MlpulDA=="],"Wechatpay-Signature-Type":["WECHATPAY2-SHA256-RSA2048"],"Wechatpay-Timestamp":["1774592412"],"X-Forwarded-For":["121.51.58.169"],"X-Real-Ip":["121.51.58.169"]}`
var headerMap http.Header
if err := json.Unmarshal([]byte(hds), &headerMap); err != nil {
if err := json.Unmarshal([]byte(header), &headerMap); err != nil {
t.Error(fmt.Sprintf("解析 headers 失败: %v", err))
return
}
hc := &http.Client{
Timeout: 10 * time.Second,
Timeout: 5 * time.Second,
Transport: &http.Transport{
MaxIdleConns: 1, // 最大空闲连接数
MaxIdleConnsPerHost: 1, // 每个主机的最大空闲连接数
@ -95,7 +96,7 @@ func Test_WxNotifyRequest(t *testing.T) {
return code == http.StatusOK || code == http.StatusCreated
}
respHeader, respBody, err := Post(context.Background(), uri, body, WithHttpClient(hc), WithStatusCodeFunc(isSuccess))
respHeader, respBody, err := Post(context.Background(), uri, bodyBytes, WithHttpClient(hc), WithStatusCodeFunc(isSuccess))
if err != nil {
t.Error(err)
return

View File

@ -117,8 +117,9 @@ func Test_QixingNotifyData(t *testing.T) {
func Test_MarketingNotify(t *testing.T) {
header := `{"Accept":["*/*"], "Cache-Control":["no-cache"], "Connection":["close"], "Content-Length":["1109"], "Content-Type":["application/json"], "Pragma":["no-cache"], "User-Agent":["Mozilla/4.0"], "Wechatpay-Nonce":["N61AnMoOlDsi6WnCV1xgasslXt6Hqndb"], "Wechatpay-Serial":["PUB_KEY_ID_0111000406952026032500382251001000"], "Wechatpay-Signature":["skDPjPLpIway2ll3J+o3FYnF+3Z75PuNge92LaxDDWHu8V6OXWXHUPLaJilxg/UidBcaP5JKza9t2JIgNtdRXfjPEehi7Ufn5yhPR9EUg4T1PFhkri/N8x1bvZ2oDemsTDHNNxr2PrPla2K5EcNRe6MfVpLKLp/xxX5UXfII8UHjI50jDSSoJQpSZZS0jbm5yfAeokbus0aD7835JKWksLGIuM94s5TYV8fCNL1RVab/ArLJ6UsTf0mjPEVWMdT3TePwdtVFZhFqGxlTFnR2LYSuLNflxQiE7cgtBK76L1+lMit7KlARy7aPSsOpn3DAl1sivnSvP6hX5ljOXnjv6g=="], "Wechatpay-Signature-Type":["WECHATPAY2-SHA256-RSA2048"], "Wechatpay-Timestamp":["1774495201"], "X-Forwarded-For":["121.51.58.172"], "X-Real-Ip":["121.51.58.172"]}`
bodyStr := `{"id":"2f6dba61-17d2-554c-99f1-c2527bac8013","create_time":"2026-03-26T11:14:56+08:00","resource_type":"encrypt-resource","event_type":"COUPON.USE","summary":"代金券核销通知","resource":{"original_type":"coupon","algorithm":"AEAD_AES_256_GCM","ciphertext":"fr2/gKAby7C+R8Yl/pcWLQEa+RYFDmi2LGSaZtghMtMWs+6z5XolFtNTs65JArRUjptKR4ATn0uAp+Yi2S2ly6+jV07VnUmEBk7ijPXHgkZ53VkNSKgYIC6pOumNcA3MdZxVHPRYawvsluat4m0X7/BqW3qjR9L9DYq4uXtc4pXBC2lcSmtcIENU5lHRmSU83iLp9Gp+LZ3MGaF8ExMc+ZkQcj7RRruiXqWaICeY7c0ebXQJtulytT1FSMksb5nfaf0MmElO+9fOwH1naOrdvSSQ4tglThpfEHuIZ2xaT7DwcBDYvmye+vg+fgnxE66sskz5fwdVtgiGdNSWzA8CZrP/4oXUpbNpjpY2r0GJs5etpCU5hqimz0S1zCLEOtgl/LQ3GCZA1AzZeRcIferbJotC1toJD3tALyO89VSbwcGr8kk6e1HAGyXhoIt5RC3sFnbUdHQLf01MbNhJg13p1YbqInLI3ktjlst4N+gGXmCHHzHlpeOHgdF2uvrWTE/XTDlfumGKBDLFkSOu62pldQfLKVU++BPvvqaRXK9m4g5F87dwOJQJyltm3LYwKfpg1vIMw6ch1Nvrj79+xQs0Xa32Ds8omjI3GmMyly/BMvWJkFpTivrgUnXXMLfzDIFLRB5cR4dGQkJWFBY/qkjHu3yvTqcJuiaUqaHFKjhJJt1WpVMWaj4WlsbOb/oI3eTroxzynNOhgmYWMrM47OSfHJ1MhGU3c18Zk89zyY8miVe/CaPhwwmBnIgeYoBzj5ic36HXJN1Qkup1FYAOadWWXwc=","associated_data":"coupon","nonce":"I4U3QlKjYHlc"}}`
bodyBytes := []byte(`{"id":"0e92e862-66b0-55a3-b1da-0e54a820b923","create_time":"2026-03-27T14:20:12+08:00","resource_type":"encrypt-resource","event_type":"COUPON.USE","summary":"代金券核销通知","resource":{"original_type":"coupon","algorithm":"AEAD_AES_256_GCM","ciphertext":"LFFqFfGIu1uHYbKwqxND29QS7sH54U1k9uj+W5ecKf0ZzBT8YzikcSqa6W0iIcpnlQE0AJkDxs/nfJQ/pcRJajwy+4JzE8fzrMmhn1vgvUiXt+EyvJ8mPJwfVMtg8YtMuQBUUPxIyc5ACZVawGDVlwG9nxFYCGF0jZAtzKdwZw2MMmGFTCJri6kCE60hic5Yn3b9iPaCwmXdFlVKA6NozMEp2uNoQYYzy1+OEAfyXHyspz0IQnhUFcVuxfnGbK4zJQYUZ8yGhg3YfNFTtDW0vRTBwkNeR8BWy/LXSKMZJ7sC+SaX7eASd0QHXA/UPWpItCQGRDeZHUXWEQw6yB3GpHfKRTlO5H7VINLVe9pj+XWnXMzDEqDShpUnCP3cgf7TBYykopXPKXfI/bekTxy6ZWbikQH1Ts9lc/AMqd3NK7H5AmQPNld6DkBkt1jgI/DP5tUJeyQyYX39fX0pJCFpy94AQhXyPXLKT2VQHmnX3qnaQyztgY7GfvavtmgTNFunKcnqXtgU65wpg156iTGhHyoG01msdoUMjynY7pbdUHM1O/ljsizysqiGBvYaDfhx4Mcf8Fd3kT5bbuelM2DLg7nycz9ZjPrsKWz47eNG2U3hixk6yVxrBpAsO4QM7/ngB1+5Z7Pv06nSoP7jnFxIMv9iwPn5Y+O5tb1JfO/2su7UTtDcY25iJBqiKJvwgtzy9IB1hR781PPNzHVDT9ORUfJVVlrkGgaOn7aMDyzv3DYYUkK0fTENAReCa7D/wrajM6U6Gu8Z1/TfKkJ9BdwbEqI=","associated_data":"coupon","nonce":"b2AW4NUIk2AX"}}`)
header := `{"Accept":["*/*"],"Cache-Control":["no-cache"],"Connection":["close"],"Content-Length":["1109"],"Content-Type":["application/json"],"Pragma":["no-cache"],"User-Agent":["Mozilla/4.0"],"Wechatpay-Nonce":["OaVm4rYgmQnOzu9dra2OM9J560D5uuLh"],"Wechatpay-Serial":["PUB_KEY_ID_0111000406952026032500382251001000"],"Wechatpay-Signature":["QUnj2WwPfh3nAycuwQ/7zFVjhSHObnFfmfLnPx/4UXjgFlkY1REyCHrBHrJ1lDpUOodiY5qsGg/7CQ6aMlXZe24xsLOBjwOgZr0JGmsRisrwnQL+jy6ar8pAf1fABv+e/lCLO+UZtLXrv1GCQix51GLerkELEVTQkn6qzT4aVyL1Ukte6hk+r3HlWOQC6OM3cpxyr8XhVilGWaElRCgPwHI2XYLGjH6QWtcRnCSMESLFGOwI7t9GbxgGLptEelfmVpBHdRFTDWa8rWJI7b9ArI//vMawkJUE7tW5nkqF5sWMydKUQ5ZDLf5oI447zic/LOljZ4SA7I/aTN4MlpulDA=="],"Wechatpay-Signature-Type":["WECHATPAY2-SHA256-RSA2048"],"Wechatpay-Timestamp":["1774592412"],"X-Forwarded-For":["121.51.58.169"],"X-Real-Ip":["121.51.58.169"]}`
httpHeaders := make(http.Header)
if err := json.Unmarshal([]byte(header), &httpHeaders); err != nil {
@ -126,7 +127,7 @@ func Test_MarketingNotify(t *testing.T) {
return
}
body, bizContent, err := marketingFJLF().Notify(context.Background(), &httpHeaders, []byte(bodyStr))
body, bizContent, err := marketingFJLF().Notify(context.Background(), &httpHeaders, bodyBytes)
if err != nil {
t.Errorf("notify err: %+v\n", err)
return