|
|
@@ -54,6 +54,43 @@ func GetMiniPaySign(appId, nonceStr, prepayId, signType, timeStamp, secretKey st
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+//JSAPI支付,支付参数后,再次计算出微信内H5支付需要用的paySign
|
|
|
+func GetH5PaySign(appId, nonceStr, prepayId, signType, timeStamp, secretKey string) (paySign string) {
|
|
|
+ buffer := new(bytes.Buffer)
|
|
|
+ buffer.WriteString("appId=")
|
|
|
+ buffer.WriteString(appId)
|
|
|
+
|
|
|
+ buffer.WriteString("&nonceStr=")
|
|
|
+ buffer.WriteString(nonceStr)
|
|
|
+
|
|
|
+ buffer.WriteString("&package=")
|
|
|
+ buffer.WriteString(prepayId)
|
|
|
+
|
|
|
+ buffer.WriteString("&signType=")
|
|
|
+ buffer.WriteString(signType)
|
|
|
+
|
|
|
+ buffer.WriteString("&timeStamp=")
|
|
|
+ buffer.WriteString(timeStamp)
|
|
|
+
|
|
|
+ buffer.WriteString("&key=")
|
|
|
+ buffer.WriteString(secretKey)
|
|
|
+
|
|
|
+ signStr := buffer.String()
|
|
|
+
|
|
|
+ var hashSign []byte
|
|
|
+ if signType == SignType_MD5 {
|
|
|
+ hash := md5.New()
|
|
|
+ hash.Write([]byte(signStr))
|
|
|
+ hashSign = hash.Sum(nil)
|
|
|
+ } else {
|
|
|
+ hash := hmac.New(sha256.New, []byte(secretKey))
|
|
|
+ hash.Write([]byte(signStr))
|
|
|
+ hashSign = hash.Sum(nil)
|
|
|
+ }
|
|
|
+ paySign = strings.ToUpper(hex.EncodeToString(hashSign))
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
//获取微信用户的OpenId、SessionKey、UnionId
|
|
|
func GetWeChatUserId(appId, secretKey, wxCode string) (userRsp *WeChatUserIdRsp, err error) {
|
|
|
userRsp = new(WeChatUserIdRsp)
|