|
- package main
-
- import (
- "crypto/md5"
- "fmt"
- "io"
- "net/url"
- )
-
- func md5str(s string) string {
- h := md5.New()
- io.WriteString(h, s)
- return fmt.Sprintf("%x", h.Sum(nil))
- }
-
- func md5LeanworkForm(form url.Values) string {
- s := ""
- if _, ok := form["pickupUrl"]; ok {
- s += form["pickupUrl"][0]
- s += form["receiveUrl"][0]
- s += form["signType"][0]
- s += form["orderNo"][0]
- s += form["orderAmount"][0]
- s += form["orderCurrency"][0]
- s += form["customerId"][0]
- s += Config.LeanWork.MD5Key
- }
- return md5str(s)
- }
-
- func isLeanworkFormValid(form url.Values) bool {
- r := md5LeanworkForm(form)
- sign := form["sign"][0]
- return r == sign
- }
-
- func md4RpnFormP2P(r RpnReq) string {
- return md5RpnForm(r, Config.Rpn.MD5P2P)
- }
-
- func md5RpnFormFAT(r RpnReq) string {
- return md5RpnForm(r, Config.Rpn.MD5FAT)
- }
-
- func md5RpnForm(r RpnReq, md5key string) string {
- s := ""
- s += "version=" + r.version + "|"
- s += "sign_type=" + r.sign_type + "|"
- s += "mid=" + r.mid + "|"
- s += "notify_url=" + r.notify_url + "|"
- s += "order_id=" + r.order_id + "|"
- s += "order_amount=" + r.order_amount + "|"
- s += "order_time=" + r.order_time + "|"
- s += "user_id=" + r.user_id + "|"
- s += "user_name=" + r.user_name + "|"
- s += "user_cardno=" + r.user_cardno + "|"
- s += "key=" + md5key
- fmt.Println(s)
- fmt.Println(md5str(s))
- return md5str(s)
- }
|