提交 1cbef05d authored 作者: 张立波's avatar 张立波

Merge remote-tracking branch 'origin/master'

......@@ -26,6 +26,7 @@ import (
const pkgName = "hcw"
type Config struct {
AppId string
SecretKey string
ApiUrl string
}
......@@ -165,9 +166,9 @@ func (s *HcwClient) post(ctx context.Context, method string, req interface{}) (r
Url := s.Config.ApiUrl + method
Request := g.Client()
Request.SetHeader("Content-Type", "application/json")
Request.SetHeader("Format", "json")
Request.SetHeader("Content-Type", "application/json;charset=UTF-8")
Request.SetHeader("signature", signature)
Request.SetHeader("appid", s.Config.AppId)
resp, err := Request.Timeout(time.Second*10).Post(Url, param.MustToJsonString())
defer func() {
......@@ -196,9 +197,9 @@ func (s *HcwClient) get(ctx context.Context, method string, req interface{}) (re
query := mapToSortedQuery(queryParams)
Url := s.Config.ApiUrl + method + "?" + query
Request := g.Client()
Request.SetHeader("Content-Type", "text/xml; charset=utf-8")
Request.SetHeader("Format", "json")
Request.SetHeader("Content-Type", "application/json;charset=UTF-8")
Request.SetHeader("signature", signature)
Request.SetHeader("appid", s.Config.AppId)
resp, err := Request.Timeout(time.Second * 10).Get(Url)
defer func() {
......
......@@ -2,7 +2,9 @@ package hcw
import (
"encoding/json"
"errors"
"github.com/gogf/gf/net/ghttp"
"github.com/gogf/gf/util/gconv"
)
//notify_id string 唯一请求ID(用于幂等校验)示例:20240320140000_123456
......@@ -32,19 +34,25 @@ type OrderNotifyData struct {
// 回调
func (s *HcwClient) CallBack(r *ghttp.Request) (res *OrderNotifyRes, err error) {
body, err := CheckSign(r)
if nil != err {
return
}
body := r.GetBodyString()
if body == "" {
return
}
err = json.Unmarshal([]byte(body), &res)
if nil != err {
return
}
err = s.CheckSign(res)
return
}
func CheckSign(r *ghttp.Request) (body string, err error) {
body = r.GetBodyString()
func (s *HcwClient) CheckSign(req *OrderNotifyRes) (err error) {
reqMap := gconv.Map(req.Data)
signature, err := s.EncryptWithSignature(reqMap)
if req.Signature != signature {
err = errors.New("incorrect signature")
}
return
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论