Просмотр исходного кода

修复 支付宝 subject 中文乱码问题

Jerry 6 лет назад
Родитель
Сommit
7c1b0abeb9
2 измененных файлов с 14 добавлено и 14 удалено
  1. 10 11
      alipay_client.go
  2. 4 3
      alipay_client_test.go

+ 10 - 11
alipay_client.go

@@ -4,7 +4,6 @@ import (
 	"encoding/json"
 	"errors"
 	"fmt"
-	"golang.org/x/text/encoding/simplifiedchinese"
 	"log"
 	"time"
 )
@@ -56,10 +55,10 @@ func (this *aliPayClient) AliPayTradeCreate(body BodyMap) (aliRsp *AliPayTradeCr
 		return nil, err
 	}
 
-	convertBytes, _ := simplifiedchinese.GBK.NewDecoder().Bytes(bytes)
+	//convertBytes, _ := simplifiedchinese.GBK.NewDecoder().Bytes(bytes)
 	//log.Println("AliPayTradeCreate::::", string(convertBytes))
 	aliRsp = new(AliPayTradeCreateResponse)
-	err = json.Unmarshal(convertBytes, aliRsp)
+	err = json.Unmarshal(bytes, aliRsp)
 	if err != nil {
 		return nil, err
 	}
@@ -82,10 +81,10 @@ func (this *aliPayClient) AliPayTradeClose(body BodyMap) (aliRsp *AliPayTradeClo
 	if err != nil {
 		return nil, err
 	}
-	convertBytes, _ := simplifiedchinese.GBK.NewDecoder().Bytes(bytes)
+	//convertBytes, _ := simplifiedchinese.GBK.NewDecoder().Bytes(bytes)
 	//log.Println("AliPayTradeClose::::", string(convertBytes))
 	aliRsp = new(AliPayTradeCloseResponse)
-	err = json.Unmarshal(convertBytes, aliRsp)
+	err = json.Unmarshal(bytes, aliRsp)
 	if err != nil {
 		return nil, err
 	}
@@ -108,10 +107,10 @@ func (this *aliPayClient) AliPayTradeCancel(body BodyMap) (aliRsp *AliPayTradeCa
 	if err != nil {
 		return nil, err
 	}
-	convertBytes, _ := simplifiedchinese.GBK.NewDecoder().Bytes(bytes)
+	//convertBytes, _ := simplifiedchinese.GBK.NewDecoder().Bytes(bytes)
 	//log.Println("AliPayTradeCancel::::", string(convertBytes))
 	aliRsp = new(AliPayTradeCancelResponse)
-	err = json.Unmarshal(convertBytes, aliRsp)
+	err = json.Unmarshal(bytes, aliRsp)
 	if err != nil {
 		return nil, err
 	}
@@ -146,10 +145,10 @@ func (this *aliPayClient) AliPayTradePay(body BodyMap) (aliRsp *AliPayTradePayRe
 		return nil, err
 	}
 
-	convertBytes, _ := simplifiedchinese.GBK.NewDecoder().Bytes(bytes)
+	//convertBytes, _ := simplifiedchinese.GBK.NewDecoder().Bytes(bytes)
 	//log.Println("convertBytes::::", string(convertBytes))
 	aliRsp = new(AliPayTradePayResponse)
-	err = json.Unmarshal(convertBytes, aliRsp)
+	err = json.Unmarshal(bytes, aliRsp)
 	if err != nil {
 		return nil, err
 	}
@@ -172,10 +171,10 @@ func (this *aliPayClient) AliPayTradeQuery(body BodyMap) (aliRsp *AliPayTradeQue
 	if err != nil {
 		return nil, err
 	}
-	convertBytes, _ := simplifiedchinese.GBK.NewDecoder().Bytes(bytes)
+	//convertBytes, _ := simplifiedchinese.GBK.NewDecoder().Bytes(bytes)
 	//log.Println("AliPayTradeQuery::::", string(convertBytes))
 	aliRsp = new(AliPayTradeQueryResponse)
-	err = json.Unmarshal(convertBytes, aliRsp)
+	err = json.Unmarshal(bytes, aliRsp)
 	if err != nil {
 		return nil, err
 	}

+ 4 - 3
alipay_client_test.go

@@ -51,15 +51,16 @@ func TestAliPayClient_AliPayTradeCreate(t *testing.T) {
 	body := make(BodyMap)
 	body.Set("subject", "创建订单")
 	body.Set("buyer_id", "2088102168654131")
-	body.Set("out_trade_no", "GYWX201901301040355706100459")
+	body.Set("out_trade_no", "GZ201901301040355706100464")
 	body.Set("total_amount", "101.00")
-	//条码支付
+	//创建订单
 	aliRsp, err := client.AliPayTradeCreate(body)
 	if err != nil {
 		fmt.Println("err:", err)
 		return
 	}
 	fmt.Println("aliRsp:", *aliRsp)
+	fmt.Println("aliRsp.TradeNo:", aliRsp.AliPayTradeCreateResponse.TradeNo)
 }
 
 func TestAliPayClient_AliPayTradeClose(t *testing.T) {
@@ -150,7 +151,7 @@ func TestAliPayClient_AliPayTradeWapPay(t *testing.T) {
 	//请求参数
 	body := make(BodyMap)
 	body.Set("subject", "手机网站测试支付")
-	body.Set("out_trade_no", "GYWX201901301040355706100450")
+	body.Set("out_trade_no", "GYWX201901301040355706100461")
 	body.Set("quit_url", "https://www.gopay.ink")
 	body.Set("total_amount", "100.00")
 	body.Set("product_code", "QUICK_WAP_WAY")