Jerry 6 年之前
父節點
當前提交
477287e339
共有 3 個文件被更改,包括 12 次插入6 次删除
  1. 2 2
      alipay_client_test.go
  2. 3 2
      alipay_params.go
  3. 7 2
      alipay_server_api.go

+ 2 - 2
alipay_client_test.go

@@ -23,7 +23,7 @@ func TestAliPayClient_AliPayTradeWapPay(t *testing.T) {
 	//请求参数
 	body := make(BodyMap)
 	body.Set("subject", "手机网站测试支付")
-	body.Set("out_trade_no", "GYWX201901301040355706100423")
+	body.Set("out_trade_no", "GYWX201901301040355706100438")
 	body.Set("quit_url", "https://www.igoogle.ink")
 	body.Set("total_amount", "100.00")
 	body.Set("product_code", "QUICK_WAP_WAY")
@@ -77,7 +77,7 @@ func TestAliPayClient_AliPayTradePagePay(t *testing.T) {
 	//请求参数
 	body := make(BodyMap)
 	body.Set("subject", "网站测试支付")
-	body.Set("out_trade_no", "GYWX201901301040355706100436")
+	body.Set("out_trade_no", "GYWX201901301040355706100437")
 	body.Set("quit_url", "https://www.igoogle.ink")
 	body.Set("total_amount", "88.88")
 	body.Set("product_code", "FAST_INSTANT_TRADE_PAY")

+ 3 - 2
alipay_params.go

@@ -16,6 +16,7 @@ import (
 	"encoding/base64"
 	"encoding/pem"
 	"errors"
+	"fmt"
 	"hash"
 	"net/url"
 	"sort"
@@ -99,7 +100,7 @@ func getRsaSign(body BodyMap, signType, privateKey string) (sign string, err err
 	}
 
 	signStr = sortAliPaySignParams(body)
-	//fmt.Println("原始字符串:",signStr)
+	fmt.Println("原始字符串:", signStr)
 	_, err = h.Write([]byte(signStr))
 	if err != nil {
 		return null, err
@@ -143,6 +144,6 @@ func FormatAliPayURLParam(body BodyMap) (urlParam string) {
 		v.Add(key, value.(string))
 	}
 	urlParam = v.Encode()
-	//fmt.Println("Encode后参数:", urlParam)
+	fmt.Println("Encode后参数:", urlParam)
 	return
 }

+ 7 - 2
alipay_server_api.go

@@ -18,6 +18,7 @@ import (
 	"hash"
 	"log"
 	"net/http"
+	"net/url"
 )
 
 //解析支付宝支付完成后的Notify信息
@@ -129,8 +130,12 @@ func VerifyAliPayResultSign(aliPayPublicKey string, notifyRsp *AliPayNotifyReque
 
 	pKey := FormatAliPayPublicKey(aliPayPublicKey)
 	signStr := sortAliPaySignParams(newBody)
-	log.Println("签名字符串:", signStr)
-	err = verifyAliPaySign(signStr, notifyRsp.Sign, notifyRsp.SignType, pKey)
+	v := url.Values{}
+	v.Set("signStr", signStr)
+	encode := v.Encode()
+	signData := encode[7:]
+	log.Println("签名字符串:", signData)
+	err = verifyAliPaySign(signData, notifyRsp.Sign, notifyRsp.SignType, pKey)
 	if err != nil {
 		return false, err
 	}