From 873be7b05c450f572e1018088a4e571fd0e3d5fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=89=E6=98=A5?= Date: Thu, 30 Mar 2023 13:51:23 +0800 Subject: [PATCH] - update wechatpayapiv2 --- library.go | 2 +- .../mmpaymkttransfers.gettransferinfo.go | 15 ++-- .../mmpaymkttransfers.promotion.transfers.go | 19 +++-- service/wechatpayapiv2/params.go | 72 ------------------- service/wechatpayapiv2/pay.closeorder.go | 2 +- 5 files changed, 18 insertions(+), 92 deletions(-) delete mode 100644 service/wechatpayapiv2/params.go diff --git a/library.go b/library.go index d6e8dc5f..72e2d87e 100644 --- a/library.go +++ b/library.go @@ -1,5 +1,5 @@ package go_library func Version() string { - return "1.0.118" + return "1.0.119" } diff --git a/service/wechatpayapiv2/mmpaymkttransfers.gettransferinfo.go b/service/wechatpayapiv2/mmpaymkttransfers.gettransferinfo.go index 60d1906f..8965b180 100644 --- a/service/wechatpayapiv2/mmpaymkttransfers.gettransferinfo.go +++ b/service/wechatpayapiv2/mmpaymkttransfers.gettransferinfo.go @@ -33,31 +33,32 @@ type TransfersQueryResult struct { Result TransfersQueryResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newTransfersQueryResult(result TransfersQueryResponse, body []byte, http gorequest.Response, err error) *TransfersQueryResult { - return &TransfersQueryResult{Result: result, Body: body, Http: http, Err: err} +func newTransfersQueryResult(result TransfersQueryResponse, body []byte, http gorequest.Response) *TransfersQueryResult { + return &TransfersQueryResult{Result: result, Body: body, Http: http} } // TransfersQuery // 付款到零钱 - 查询付款 // 需要证书 // https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_3 -func (c *Client) TransfersQuery(ctx context.Context, partnerTradeNo string) *TransfersQueryResult { +func (c *Client) TransfersQuery(ctx context.Context, notMustParams ...gorequest.Params) (*TransfersQueryResult, error) { cert, err := c.P12ToPem() // 参数 - params := NewParams() + params := gorequest.NewParamsWith(notMustParams...) params.Set("appid", c.GetAppId()) params.Set("mch_id", c.GetMchId()) params.Set("nonce_str", gorandom.Alphanumeric(32)) - params.Set("partner_trade_no", partnerTradeNo) // 签名 params.Set("sign", c.getMd5Sign(params)) // 请求 request, err := c.request(ctx, apiUrl+"/mmpaymkttransfers/gettransferinfo", params, true, cert) + if err != nil { + return newTransfersQueryResult(TransfersQueryResponse{}, request.ResponseBody, request), err + } // 定义 var response TransfersQueryResponse err = xml.Unmarshal(request.ResponseBody, &response) - return newTransfersQueryResult(response, request.ResponseBody, request, err) + return newTransfersQueryResult(response, request.ResponseBody, request), err } diff --git a/service/wechatpayapiv2/mmpaymkttransfers.promotion.transfers.go b/service/wechatpayapiv2/mmpaymkttransfers.promotion.transfers.go index 4d59fb3e..8fa0ca05 100644 --- a/service/wechatpayapiv2/mmpaymkttransfers.promotion.transfers.go +++ b/service/wechatpayapiv2/mmpaymkttransfers.promotion.transfers.go @@ -28,35 +28,32 @@ type TransfersResult struct { Result TransfersResponse // 结果 Body []byte // 内容 Http gorequest.Response // 请求 - Err error // 错误 } -func newTransfersResult(result TransfersResponse, body []byte, http gorequest.Response, err error) *TransfersResult { - return &TransfersResult{Result: result, Body: body, Http: http, Err: err} +func newTransfersResult(result TransfersResponse, body []byte, http gorequest.Response) *TransfersResult { + return &TransfersResult{Result: result, Body: body, Http: http} } // Transfers // 付款到零钱 - 付款 // 需要证书 // https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2 -func (c *Client) Transfers(ctx context.Context, partnerTradeNo, openid string, amount int64, desc string) *TransfersResult { +func (c *Client) Transfers(ctx context.Context, notMustParams ...gorequest.Params) (*TransfersResult, error) { cert, err := c.P12ToPem() // 参数 - params := NewParams() + params := gorequest.NewParamsWith(notMustParams...) params.Set("mch_appid", c.GetAppId()) params.Set("mchid", c.GetMchId()) params.Set("nonce_str", gorandom.Alphanumeric(32)) - params.Set("partner_trade_no", partnerTradeNo) - params.Set("openid", openid) - params.Set("check_name", "NO_CHECK") - params.Set("amount", amount) - params.Set("desc", desc) // 签名 params.Set("sign", c.getMd5Sign(params)) // 请求 request, err := c.request(ctx, apiUrl+"/mmpaymkttransfers/promotion/transfers", params, true, cert) + if err != nil { + return newTransfersResult(TransfersResponse{}, request.ResponseBody, request), err + } // 定义 var response TransfersResponse err = xml.Unmarshal(request.ResponseBody, &response) - return newTransfersResult(response, request.ResponseBody, request, err) + return newTransfersResult(response, request.ResponseBody, request), err } diff --git a/service/wechatpayapiv2/params.go b/service/wechatpayapiv2/params.go deleted file mode 100644 index 60a62237..00000000 --- a/service/wechatpayapiv2/params.go +++ /dev/null @@ -1,72 +0,0 @@ -package wechatpayapiv2 - -import ( - "bytes" - "encoding/xml" - "fmt" - "io" -) - -// Params 请求参数 -type Params map[string]interface{} - -func NewParams() Params { - p := make(Params) - return p -} - -func (c *Client) NewParamsWith(params ...Params) Params { - p := make(Params) - for _, v := range params { - p.SetParams(v) - } - return p -} - -func (p Params) Set(key string, value interface{}) { - p[key] = value -} - -func (p Params) SetParams(params Params) { - for key, value := range params { - p[key] = value - } -} - -func (p Params) MarshalXML() (reader io.Reader, err error) { - buffer := bytes.NewBuffer(make([]byte, 0)) - - if _, err = io.WriteString(buffer, ""); err != nil { - return - } - - for k, v := range p { - switch { - case k == "detail": - if _, err = io.WriteString(buffer, ""); err != nil { - return - } - default: - if _, err = io.WriteString(buffer, "<"+k+">"); err != nil { - return - } - if err = xml.EscapeText(buffer, []byte(fmt.Sprintf("%v", v))); err != nil { - return - } - if _, err = io.WriteString(buffer, ""); err != nil { - return - } - } - } - - if _, err = io.WriteString(buffer, ""); err != nil { - return - } - return buffer, nil -} diff --git a/service/wechatpayapiv2/pay.closeorder.go b/service/wechatpayapiv2/pay.closeorder.go index 7128b7a2..282e36e7 100644 --- a/service/wechatpayapiv2/pay.closeorder.go +++ b/service/wechatpayapiv2/pay.closeorder.go @@ -38,7 +38,7 @@ func newPayCloseOrderResult(result PayCloseOrderResponse, body []byte, http gore // https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_3 func (c *Client) PayCloseOrder(ctx context.Context, outTradeNo string) *PayCloseOrderResult { // 参数 - params := NewParams() + params := gorequest.NewParams() params.Set("appid", c.GetAppId()) // 小程序ID params.Set("mch_id", c.GetMchId()) // 商户号 params.Set("out_trade_no", outTradeNo) // 商户订单号