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