Pārlūkot izejas kodu

统一下单接口修改tradeType:可以从param中指定使用什么tradeType;方便使用者根据不同使用场景调用

song kang 7 gadi atpakaļ
vecāks
revīzija
a6b1c56c25
1 mainītis faili ar 3 papildinājumiem un 3 dzēšanām
  1. 3 3
      pay/pay.go

+ 3 - 3
pay/pay.go

@@ -24,6 +24,7 @@ type Params struct {
 	Body       string
 	OutTradeNo string
 	OpenID     string
+	TradeType  string
 }
 
 // Config 是传出用于 jsdk 用的参数
@@ -86,9 +87,8 @@ func NewPay(ctx *context.Context) *Pay {
 // PrePayOrder return data for invoke wechat payment
 func (pcf *Pay) PrePayOrder(p *Params) (payOrder PreOrder, err error) {
 	nonceStr := util.RandomStr(32)
-	tradeType := "JSAPI"
 	template := "appid=%s&body=%s&mch_id=%s&nonce_str=%s&notify_url=%s&openid=%s&out_trade_no=%s&spbill_create_ip=%s&total_fee=%s&trade_type=%s&key=%s"
-	str := fmt.Sprintf(template, pcf.AppID, p.Body, pcf.PayMchID, nonceStr, pcf.PayNotifyURL, p.OpenID, p.OutTradeNo, p.CreateIP, p.TotalFee, tradeType, pcf.PayKey)
+	str := fmt.Sprintf(template, pcf.AppID, p.Body, pcf.PayMchID, nonceStr, pcf.PayNotifyURL, p.OpenID, p.OutTradeNo, p.CreateIP, p.TotalFee, p.TradeType, pcf.PayKey)
 	sign := util.MD5Sum(str)
 	request := payRequest{
 		AppID:          pcf.AppID,
@@ -100,7 +100,7 @@ func (pcf *Pay) PrePayOrder(p *Params) (payOrder PreOrder, err error) {
 		TotalFee:       p.TotalFee,
 		SpbillCreateIP: p.CreateIP,
 		NotifyURL:      pcf.PayNotifyURL,
-		TradeType:      tradeType,
+		TradeType:      p.TradeType,
 		OpenID:         p.OpenID,
 	}
 	rawRet, err := util.PostXML(payGateway, request)