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
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
|
|
// }
|