From de651b674e68d6fa649e398e08a71ef0bb8029fb Mon Sep 17 00:00:00 2001 From: guzeng Date: Tue, 13 Jun 2023 16:36:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=AB=E7=A0=81=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- micropay.go | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/micropay.go b/micropay.go index eb577a4..4d10d63 100644 --- a/micropay.go +++ b/micropay.go @@ -2,6 +2,7 @@ package wechat import ( "encoding/xml" + "errors" "fmt" "log" "reflect" @@ -134,7 +135,7 @@ type ReverseReturnXml struct { * @param auth_code 付款码 */ -func MicroPay(appid, mchid, mch_key, device_info, body, out_trade_no, auth_code, total_fee string) (bool, string, PayReturnXml) { +func MicroPay(appid, mchid, mch_key, device_info, body, out_trade_no, auth_code, total_fee string) (PayReturnXml, error) { log.Println("wechat micropay") @@ -173,13 +174,13 @@ func MicroPay(appid, mchid, mch_key, device_info, body, out_trade_no, auth_code, if err != nil { log.Println("Err:", err) - return false, "微信支付失败,请检查网络", retXml + return retXml, errors.New("微信支付失败,请检查网络") } err = xml.Unmarshal(ret, &retXml) if err != nil { log.Println("xml Unmarshal Err:", retXml, err) - return false, "未知的支付结果", retXml + return retXml, errors.New("未知的支付结果") } if retXml.ResultCode == "SUCCESS" { @@ -193,16 +194,16 @@ func MicroPay(appid, mchid, mch_key, device_info, body, out_trade_no, auth_code, if sign != retXml.Sign { log.Println("Err:签名错误", string(ret), sign) - return false, "支付结果签名错误", retXml + return retXml, errors.New("支付结果签名错误") } } else { - return false, retXml.ReturnMsg, retXml + return retXml, errors.New(retXml.ReturnMsg) } - return true, "", retXml + return retXml, nil } -func MicroPayQuery(appid, mchid, out_trade_no, mch_key string) (bool, string, QueryReturnXml) { +func MicroPayQuery(appid, mchid, out_trade_no, mch_key string) (QueryReturnXml, error) { log.Println("wechat micropay query", out_trade_no) @@ -228,13 +229,13 @@ func MicroPayQuery(appid, mchid, out_trade_no, mch_key string) (bool, string, Qu if err != nil { log.Println("Err:", err) - return false, "微信支付失败,请检查网络", retXml + return retXml, errors.New("微信支付失败,请检查网络") } err = xml.Unmarshal(ret, &retXml) if err != nil { log.Println("xml Unmarshal Err:", retXml, err) - return false, "未知的支付结果", retXml + return retXml, errors.New("未知的支付结果") } if retXml.ReturnCode == "SUCCESS" { @@ -248,19 +249,19 @@ func MicroPayQuery(appid, mchid, out_trade_no, mch_key string) (bool, string, Qu if sign != retXml.Sign { log.Println("Err:签名错误", string(ret), sign) - return false, "查询支付结果签名错误", retXml + return retXml, errors.New("查询支付结果签名错误") } } else { - return false, retXml.ReturnMsg, retXml + return retXml, errors.New(retXml.ReturnMsg) } - return true, "", retXml + return retXml, nil } /** * 撤消订单 * 2023/06/13 */ -func MicroPayReverse(appid, mchid, out_trade_no, mch_key string) (bool, string, QueryReturnXml) { +func MicroPayReverse(appid, mchid, out_trade_no, mch_key string) (QueryReturnXml, error) { log.Println("wechat micropay reverse", out_trade_no) @@ -286,13 +287,13 @@ func MicroPayReverse(appid, mchid, out_trade_no, mch_key string) (bool, string, if err != nil { log.Println("Err:", err) - return false, "撤消微信支付失败,请检查网络", retXml + return retXml, errors.New("撤消微信支付失败,请检查网络") } err = xml.Unmarshal(ret, &retXml) if err != nil { log.Println("xml Unmarshal Err:", retXml, err) - return false, "未知的撤消结果", retXml + return retXml, errors.New("未知的撤消结果") } if retXml.ReturnCode == "SUCCESS" { @@ -306,12 +307,13 @@ func MicroPayReverse(appid, mchid, out_trade_no, mch_key string) (bool, string, if sign != retXml.Sign { log.Println("Err:签名错误", string(ret), sign) - return false, "查询支付结果签名错误", retXml + return retXml, errors.New("查询支付结果签名错误") } + } else { - return false, retXml.ReturnMsg, retXml + return retXml, errors.New(retXml.ReturnMsg) } - return true, "", retXml + return retXml, nil } func XmlStructToMap(retXml interface{}) map[string]string {