Jerry 6 anos atrás
pai
commit
193b022a8b
5 arquivos alterados com 22 adições e 6 exclusões
  1. 1 1
      README.md
  2. 1 1
      README_EN.md
  3. 7 3
      alipay_client.go
  4. 4 0
      examples/wechat/wx_UnifiedOrder.go
  5. 9 1
      wechat_client.go

+ 1 - 1
README.md

@@ -16,7 +16,7 @@
 
 * client := gopay.NewWeChatClient() => 初始化微信支付客户端
 * client的其他配置
-    * client.SetCountry() => 设置国家地区,默认中国国内
+    * client.SetCountry() => 设置国家地区,默认中国国内(gopay.China、gopay.China2、gopay.SoutheastAsia、gopay.Other)
 
 ## 微信支付API
 

+ 1 - 1
README_EN.md

@@ -16,7 +16,7 @@ The Golang SDK for WeChat and AliPay
 
 * client := gopay.NewWeChatClient() => Init WeChat Payment Client
 * client's other configuration
-    * client.SetCountry() => set country area,default China
+    * client.SetCountry() => set country area,default China(gopay.China、gopay.China2、gopay.SoutheastAsia、gopay.Other)
 
 ## WeChat Payment API
 

+ 7 - 3
alipay_client.go

@@ -549,19 +549,23 @@ func (this *aliPayClient) doAliPay(body BodyMap, method string) (bytes []byte, e
 		//fmt.Println(url)
 		agent.Post(url)
 	}
-	rsp, bs, errs := agent.
+	res, bs, errs := agent.
 		Type("form-data").
 		SendString(urlParam).
 		EndBytes()
 	if len(errs) > 0 {
 		return nil, errs[0]
 	}
+	//fmt.Println("res:", res.StatusCode)
+	if res.StatusCode != 200 {
+		return nil, fmt.Errorf("HTTP Request Error, StatusCode = %v", res.StatusCode)
+	}
 	if method == "alipay.trade.wap.pay" {
 		//fmt.Println("rsp:::", rsp.Body)
-		if rsp.Request.URL.String() == zfb_sanbox_base_url || rsp.Request.URL.String() == zfb_base_url {
+		if res.Request.URL.String() == zfb_sanbox_base_url || res.Request.URL.String() == zfb_base_url {
 			return nil, errors.New("请求手机网站支付出错,请检查各个参数或秘钥是否正确")
 		}
-		return []byte(rsp.Request.URL.String()), nil
+		return []byte(res.Request.URL.String()), nil
 	}
 	return bs, nil
 }

+ 4 - 0
examples/wechat/wx_UnifiedOrder.go

@@ -15,6 +15,9 @@ func UnifiedOrder() {
 	//    isProd:是否是正式环境
 	client := gopay.NewWeChatClient("wxdaa2ab9ef87b5497", "1368139502", "GFDS8j98rewnmgl45wHTt980jg543abc", false)
 
+	//设置国家
+	client.SetCountry(gopay.SoutheastAsia)
+
 	number := gopay.GetRandomString(32)
 	fmt.Println("out_trade_no:", number)
 	//初始化参数Map
@@ -46,6 +49,7 @@ func UnifiedOrder() {
 		return
 	}
 	fmt.Println("wxRsp:", *wxRsp)
+	fmt.Println("wxRsp.MwebUrl:", wxRsp.MwebUrl)
 
 	timeStamp := strconv.FormatInt(time.Now().Unix(), 10)
 

+ 9 - 1
wechat_client.go

@@ -4,6 +4,7 @@ import (
 	"crypto/tls"
 	"crypto/x509"
 	"encoding/xml"
+	"fmt"
 	"io/ioutil"
 )
 
@@ -76,6 +77,7 @@ func (this *weChatClient) UnifiedOrder(body BodyMap) (wxRsp *WeChatUnifiedOrderR
 	//fmt.Println("bytes:", string(bytes))
 	err = xml.Unmarshal(bytes, wxRsp)
 	if err != nil {
+		//fmt.Println("xml.Unmarshal.Err:", err)
 		return nil, err
 	}
 	return wxRsp, nil
@@ -392,6 +394,7 @@ func (this *weChatClient) doWeChat(body BodyMap, path string, tlsConfig ...*tls.
 		//从微信接口获取SanBoxSignKey
 		key, err := getSanBoxSign(this.MchId, body.Get("nonce_str"), this.apiKey, SignType_MD5)
 		if err != nil {
+			//fmt.Println("getSanBoxSign:", err)
 			return nil, err
 		}
 		sign = getLocalSign(key, body.Get("sign_type"), body)
@@ -417,9 +420,14 @@ func (this *weChatClient) doWeChat(body BodyMap, path string, tlsConfig ...*tls.
 	}
 	agent.Type("xml")
 	agent.SendString(reqXML)
-	_, bytes, errs := agent.EndBytes()
+	res, bytes, errs := agent.EndBytes()
 	if len(errs) > 0 {
+		//fmt.Println("errs[0]:", errs[0])
 		return nil, errs[0]
 	}
+	//fmt.Println("res:", res.StatusCode)
+	if res.StatusCode != 200 {
+		return nil, fmt.Errorf("HTTP Request Error, StatusCode = %v", res.StatusCode)
+	}
 	return bytes, nil
 }