Commit 49c764a2e0bed93cec50c77480fcb24e0cdc97c3
1 parent
f3b813ee
Exists in
master
and in
4 other branches
提现接入后端SDK
Showing
3 changed files
with
176 additions
and
8 deletions
Show diff stats
src/HttpServer/logic/constdef.go
| ... | ... | @@ -42,8 +42,9 @@ const ( |
| 42 | 42 | ) |
| 43 | 43 | |
| 44 | 44 | const ( |
| 45 | - XIAOXINGXING_SERVERKEY = "33e0c3238c108a36d87025544c6a2d2f" | |
| 46 | - XIAOXINGXING_SDKURL = "https://testapi-gamesdk.d3games.com/" | |
| 45 | + XIAOXINGXING_SERVERKEY = "33e0c3238c108a36d87025544c6a2d2f" | |
| 46 | + XIAOXINGXING_SERVERKEYTEST = "e2cd22102143cdcd9c181f962d031685" | |
| 47 | + XIAOXINGXING_SDKURL = "https://testapi-gamesdk.d3games.com/" | |
| 47 | 48 | ) |
| 48 | 49 | |
| 49 | 50 | const ( | ... | ... |
src/HttpServer/logic/datadef.go
| ... | ... | @@ -287,6 +287,22 @@ type UserData struct { |
| 287 | 287 | Achieve AchieveMentInfo //玩家成就完成相关数据 |
| 288 | 288 | } |
| 289 | 289 | |
| 290 | +//---------------------------------------------------------------------------------------------------------------------- | |
| 291 | + | |
| 292 | +type TixianDesc struct { | |
| 293 | + Sign string `json:"sign"` | |
| 294 | + Sign_type string `json:"sign_type"` | |
| 295 | + Time_stamp string `json:"time_stamp"` | |
| 296 | + Gameid string `json:"gameid"` | |
| 297 | + Channel string `json:"channel"` | |
| 298 | + Uid int `json:"uid"` | |
| 299 | + Typ int `json:"typ"` | |
| 300 | + Money int `json:"money"` | |
| 301 | + Openid string `json:"openid"` | |
| 302 | + Nickname string `json:"nickname"` | |
| 303 | + Headurl string `json:"headurl"` | |
| 304 | +} | |
| 305 | + | |
| 290 | 306 | type AddCoinDesc struct { |
| 291 | 307 | Sign string `json:"sign"` |
| 292 | 308 | Sign_type string `json:"sign_type"` |
| ... | ... | @@ -298,6 +314,16 @@ type AddCoinDesc struct { |
| 298 | 314 | Typ int `json:"typ"` |
| 299 | 315 | } |
| 300 | 316 | |
| 317 | +type AddCoinResultData struct { | |
| 318 | + Mycoin int `json:"mycoin"` | |
| 319 | +} | |
| 320 | + | |
| 321 | +type AddCoinResp struct { | |
| 322 | + Code string `json:"code"` | |
| 323 | + Msg string `json:"msg"` | |
| 324 | + Data AddCoinResultData `json:"data"` | |
| 325 | +} | |
| 326 | + | |
| 301 | 327 | type GetCoinDesc struct { |
| 302 | 328 | Sign string `json:"sign"` |
| 303 | 329 | Sign_type string `json:"sign_type"` |
| ... | ... | @@ -306,3 +332,8 @@ type GetCoinDesc struct { |
| 306 | 332 | Channel string `json:"channel"` |
| 307 | 333 | Uid int `json:"uid"` |
| 308 | 334 | } |
| 335 | + | |
| 336 | +type GetCashResp struct { | |
| 337 | + Code string `json:"code"` | |
| 338 | + Msg string `json:"msg"` | |
| 339 | +} | ... | ... |
src/HttpServer/logic/function.go
| ... | ... | @@ -785,10 +785,59 @@ func DoHttpPost(bys []byte) (string, error) { |
| 785 | 785 | } |
| 786 | 786 | |
| 787 | 787 | func GetCoinFromSdk(uuid int, gameid string, channel string) (int, error) { |
| 788 | - | |
| 788 | + var paramlist []string | |
| 789 | 789 | var params GetCoinDesc |
| 790 | 790 | params.Sign_type = "md5" |
| 791 | - return 0, nil | |
| 791 | + params.Gameid = gameid | |
| 792 | + params.Channel = channel | |
| 793 | + params.Uid = uuid | |
| 794 | + params.Time_stamp = strconv.Itoa(int(time.Now().Unix())) | |
| 795 | + signtypestr := "md5=" + params.Sign_type | |
| 796 | + timestampstr := "time_stamp=" + strconv.Itoa(int(time.Now().Unix())) | |
| 797 | + paramgameid := "gameid=" + gameid | |
| 798 | + pchannel := "channel=" + channel | |
| 799 | + puid := "uid=" + strconv.Itoa(uuid) | |
| 800 | + paramlist = append(paramlist, signtypestr) | |
| 801 | + paramlist = append(paramlist, timestampstr) | |
| 802 | + paramlist = append(paramlist, paramgameid) | |
| 803 | + paramlist = append(paramlist, pchannel) | |
| 804 | + paramlist = append(paramlist, puid) | |
| 805 | + | |
| 806 | + sumparam := GettotalParam(paramlist) | |
| 807 | + //加serverkey | |
| 808 | + signsum := sumparam + XIAOXINGXING_SERVERKEYTEST | |
| 809 | + logger.Info("GetCoinFromSdk sumparam=%v", signsum) | |
| 810 | + | |
| 811 | + //进行hash | |
| 812 | + sign := GetHashValue(signsum) | |
| 813 | + params.Sign = sign | |
| 814 | + | |
| 815 | + bys, err := json.Marshal(¶ms) | |
| 816 | + if err != nil { | |
| 817 | + logger.Error("GetCoinFromSdk failed=%v", err) | |
| 818 | + return 0, err | |
| 819 | + } | |
| 820 | + res, err := DoHttpPost(bys) | |
| 821 | + if err != nil { | |
| 822 | + logger.Error("GetCoinFromSdk failed=%v", err) | |
| 823 | + return 0, err | |
| 824 | + } | |
| 825 | + | |
| 826 | + logger.Info("GetCoinFromSdk res=%v", res) | |
| 827 | + | |
| 828 | + var resp AddCoinResp | |
| 829 | + err = json.Unmarshal([]byte(res), &resp) | |
| 830 | + if err != nil { | |
| 831 | + logger.Error("GetCoinFromSdk failed=%v", err) | |
| 832 | + return 0, err | |
| 833 | + } | |
| 834 | + | |
| 835 | + if resp.Code != "0" { | |
| 836 | + logger.Error("GetCoinFromSdk failed=%v", resp.Msg) | |
| 837 | + return 0, err | |
| 838 | + } | |
| 839 | + | |
| 840 | + return resp.Data.Mycoin, nil | |
| 792 | 841 | } |
| 793 | 842 | |
| 794 | 843 | func AddCoinToSdk(uuid int, goldnum int, gameid string, channel string, atype int) (int, error) { |
| ... | ... | @@ -810,7 +859,7 @@ func AddCoinToSdk(uuid int, goldnum int, gameid string, channel string, atype in |
| 810 | 859 | |
| 811 | 860 | sumparam := GettotalParam(paramlist) |
| 812 | 861 | //加serverkey |
| 813 | - signsum := sumparam + XIAOXINGXING_SERVERKEY | |
| 862 | + signsum := sumparam + XIAOXINGXING_SERVERKEYTEST | |
| 814 | 863 | logger.Info("AddCoinToSdk sumparam=%v", signsum) |
| 815 | 864 | |
| 816 | 865 | //进行hash |
| ... | ... | @@ -838,10 +887,97 @@ func AddCoinToSdk(uuid int, goldnum int, gameid string, channel string, atype in |
| 838 | 887 | } |
| 839 | 888 | |
| 840 | 889 | logger.Info("AddCoinToSdk res=%v", res) |
| 841 | - return 0, nil | |
| 890 | + var resp AddCoinResp | |
| 891 | + err = json.Unmarshal([]byte(res), &resp) | |
| 892 | + if err != nil { | |
| 893 | + logger.Error("AddCoinToSdk failed=%v", err) | |
| 894 | + return 0, err | |
| 895 | + } | |
| 896 | + | |
| 897 | + if resp.Code != "0" { | |
| 898 | + logger.Error("AddCoinToSdk failed=%v", resp.Msg) | |
| 899 | + return 0, err | |
| 900 | + } | |
| 901 | + return resp.Data.Mycoin, nil | |
| 842 | 902 | } |
| 843 | 903 | |
| 844 | 904 | func GetCashFromSDK(uuid int, goldnum int, gameid, channel, openid, nickname, headurl string) (int, error) { |
| 845 | - //先不接 | |
| 846 | - return 0, nil | |
| 905 | + if goldnum == 0 || uuid == 0 || gameid == "" || channel == "" || openid == "" || nickname == "" || headurl == "" { | |
| 906 | + logger.Error("GetCashFromSDK param empty") | |
| 907 | + return 0, errors.New("param empty") | |
| 908 | + } | |
| 909 | + var paramlist []string | |
| 910 | + var params TixianDesc | |
| 911 | + params.Sign_type = "md5" | |
| 912 | + params.Gameid = gameid | |
| 913 | + params.Channel = channel | |
| 914 | + params.Uid = uuid | |
| 915 | + params.Time_stamp = strconv.Itoa(int(time.Now().Unix())) | |
| 916 | + params.Headurl = headurl | |
| 917 | + params.Money = goldnum | |
| 918 | + params.Openid = openid | |
| 919 | + params.Nickname = nickname | |
| 920 | + params.Typ = 1 | |
| 921 | + signtypestr := "md5=" + params.Sign_type | |
| 922 | + timestampstr := "time_stamp=" + strconv.Itoa(int(time.Now().Unix())) | |
| 923 | + paramgameid := "gameid=" + gameid | |
| 924 | + pchannel := "channel=" + channel | |
| 925 | + puid := "uid=" + strconv.Itoa(uuid) | |
| 926 | + phead := "headurl=" + headurl | |
| 927 | + pnickname := "nickname=" + nickname | |
| 928 | + popenid := "openid=" + openid | |
| 929 | + pmoney := "money=" + strconv.Itoa(goldnum) | |
| 930 | + ptype := "typ=" + "6" //微信 | |
| 931 | + paramlist = append(paramlist, signtypestr) | |
| 932 | + paramlist = append(paramlist, timestampstr) | |
| 933 | + paramlist = append(paramlist, paramgameid) | |
| 934 | + paramlist = append(paramlist, pchannel) | |
| 935 | + paramlist = append(paramlist, puid) | |
| 936 | + paramlist = append(paramlist, phead) | |
| 937 | + paramlist = append(paramlist, pnickname) | |
| 938 | + paramlist = append(paramlist, popenid) | |
| 939 | + paramlist = append(paramlist, pmoney) | |
| 940 | + paramlist = append(paramlist, ptype) | |
| 941 | + | |
| 942 | + sumparam := GettotalParam(paramlist) | |
| 943 | + //加serverkey | |
| 944 | + signsum := sumparam + XIAOXINGXING_SERVERKEYTEST | |
| 945 | + logger.Info("GetCashFromSDK sumparam=%v", signsum) | |
| 946 | + | |
| 947 | + //进行hash | |
| 948 | + sign := GetHashValue(signsum) | |
| 949 | + params.Sign = sign | |
| 950 | + | |
| 951 | + bys, err := json.Marshal(¶ms) | |
| 952 | + if err != nil { | |
| 953 | + logger.Error("GetCashFromSDK failed=%v", err) | |
| 954 | + return 0, err | |
| 955 | + } | |
| 956 | + res, err := DoHttpPost(bys) | |
| 957 | + if err != nil { | |
| 958 | + logger.Error("GetCashFromSDK failed=%v", err) | |
| 959 | + return 0, err | |
| 960 | + } | |
| 961 | + | |
| 962 | + logger.Info("GetCashFromSDK res=%v", res) | |
| 963 | + | |
| 964 | + var resp GetCashResp | |
| 965 | + err = json.Unmarshal([]byte(res), &resp) | |
| 966 | + if err != nil { | |
| 967 | + logger.Error("GetCashFromSDK failed=%v", err) | |
| 968 | + return 0, err | |
| 969 | + } | |
| 970 | + | |
| 971 | + if resp.Code != "0" { | |
| 972 | + logger.Error("GetCashFromSDK failed=%v", resp.Msg) | |
| 973 | + return 0, err | |
| 974 | + } | |
| 975 | + | |
| 976 | + //拉取一下新的金币值 | |
| 977 | + newnum, err := GetCoinFromSdk(uuid, gameid, channel) | |
| 978 | + if err != nil { | |
| 979 | + logger.Error("GetCashFromSDK failed=%v", err) | |
| 980 | + return 0, err | |
| 981 | + } | |
| 982 | + return newnum, nil | |
| 847 | 983 | } | ... | ... |