Prechádzať zdrojové kódy

添加参数到获取微信oauth

huangrf 6 rokov pred
rodič
commit
f8fbec4eec
1 zmenil súbory, kde vykonal 15 pridanie a 2 odobranie
  1. 15 2
      third/wx/wx.go

+ 15 - 2
third/wx/wx.go

@@ -10,7 +10,9 @@ import (
 	"github.com/silenceper/wechat/oauth"
 	"github.com/silenceper/wechat/pay"
 	"github.com/silenceper/wechat/util"
+	"net/url"
 	"strconv"
+	"strings"
 )
 
 var wxPayCallbackHandler func(result *pay.NotifyResult)models.SysReturn = nil
@@ -109,10 +111,21 @@ func PayJSAPI(params *PayParams)(*JSAPIPayConfig, error){
 }
 
 // 获取微信OAuth认证参数
-func GetOAuthParams()(*WxOAuthConfig, error){
+func GetOAuthParams(paramMap map[string]string)(*WxOAuthConfig, error){
 	config := WxOAuthConfig{}
+	urlstr := wxConfig.RedirectUrl
+	if strings.Index(urlstr, "?") > 0{
+		for k, v := range paramMap{
+			urlstr += fmt.Sprintf("&%s=%s", k, url.QueryEscape(v))
+		}
+	}else{
+		urlstr += "?"
+		for k, v := range paramMap{
+			urlstr += fmt.Sprintf("%s=%s&", k, url.QueryEscape(v))
+		}
+	}
 
-	url, err := wxoauth.GetRedirectURL(wxConfig.RedirectUrl, wxConfig.Scope, wxConfig.State)
+	url, err := wxoauth.GetRedirectURL(urlstr, wxConfig.Scope, wxConfig.State)
 	if err != nil{
 		return nil, err
 	}