You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.4 KiB

package wxh5pay
import (
"recook/tools"
"strconv"
"strings"
"time"
)
type AppCreateOrderResult struct {
AppID string `xml:"appid" json:"appid"`
MchID string `xml:"mch_id" json:"mch_id"`
MwebUrl string `xml:"mweb_url" json:"mweb_url"`
NonceStr string `xml:"noncestr" json:"noncestr"`
Package string `xml:"package" json:"package"`
PrepayId string `xml:"prepay_id" json:"prepay_id"`
ResultCode string `xml:"result_code" json:"result_code"`
Timestamp string `xml:"timestamp" json:"timestamp"`
TradeType string `xml:"trade_type" json:"trade_type"`
Sign string `xml:"sign" json:"sign"`
}
func (*AppCreateOrderResult) GetSignResult(d *CreateOrderResult) *AppCreateOrderResult {
timestamp := strconv.FormatInt(time.Now().Unix(), 10)
signStr := "appId=" + AppID
signStr = signStr + "&key=" + APIKey
signStr = signStr + "&" + "mch_id=" + d.MchId
signStr = signStr + "&" + "mweb_url=" + d.MwebUrl
signStr = signStr + "&" + "nonceStr=" + d.NonceStr
signStr = signStr + "&" + "package=" + "prepay_id=" + d.PrepayID
signStr = signStr + "&" + "result_code=" + d.ResultCode
signStr = signStr + "&" + "signType=MD5"
signStr = signStr + "&" + "timeStamp=" + timestamp
signStr = signStr + "&" + "trade_type=" + d.TradeType
r := &AppCreateOrderResult{
AppID: AppID,
MchID: MchID,
Package: "prepay_id=" + d.PrepayID,
NonceStr: d.NonceStr,
Timestamp: timestamp,
ResultCode: d.ResultCode,
PrepayId: d.PrepayID,
TradeType: d.TradeType,
MwebUrl: d.MwebUrl,
Sign: strings.ToUpper(tools.MD5(signStr)),
}
return r
}
// type WechatInnerH5Pay struct {
// AppId string `xml:"appId" json:"appId"`
// Timestamp string `xml:"timestamp" json:"timeStamp"`
// NonceStr string `xml:"noncestr" json:"nonceStr"`
// Package string `xml:"package" json:"package"`
// PrepayId string `xml:"prepay_id" json:"-"`
// SignType string `xml:"signType" json:"signType"`
// PaySign string `xml:"paySign" json:"paySign"`
// }
// func (w *WechatInnerH5Pay) Sign() *WechatInnerH5Pay {
// timestamp := strconv.FormatInt(time.Now().Unix(), 10)
// signStr := "appId=" + AppID
// signStr = signStr + "&" + "nonceStr=" + w.NonceStr
// signStr = signStr + "&" + "package=" + "prepay_id=" + w.PrepayId
// signStr = signStr + "&" + "signType=MD5"
// signStr = signStr + "&" + "timeStamp=" + timestamp
// signStr = signStr + "&key=" + APIKey
// w.PaySign = strings.ToUpper(tools.MD5(signStr))
// return w
// }