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,8 +42,9 @@ const ( | ||
42 | ) | 42 | ) |
43 | 43 | ||
44 | const ( | 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 | const ( | 50 | const ( |
src/HttpServer/logic/datadef.go
@@ -287,6 +287,22 @@ type UserData struct { | @@ -287,6 +287,22 @@ type UserData struct { | ||
287 | Achieve AchieveMentInfo //玩家成就完成相关数据 | 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 | type AddCoinDesc struct { | 306 | type AddCoinDesc struct { |
291 | Sign string `json:"sign"` | 307 | Sign string `json:"sign"` |
292 | Sign_type string `json:"sign_type"` | 308 | Sign_type string `json:"sign_type"` |
@@ -298,6 +314,16 @@ type AddCoinDesc struct { | @@ -298,6 +314,16 @@ type AddCoinDesc struct { | ||
298 | Typ int `json:"typ"` | 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 | type GetCoinDesc struct { | 327 | type GetCoinDesc struct { |
302 | Sign string `json:"sign"` | 328 | Sign string `json:"sign"` |
303 | Sign_type string `json:"sign_type"` | 329 | Sign_type string `json:"sign_type"` |
@@ -306,3 +332,8 @@ type GetCoinDesc struct { | @@ -306,3 +332,8 @@ type GetCoinDesc struct { | ||
306 | Channel string `json:"channel"` | 332 | Channel string `json:"channel"` |
307 | Uid int `json:"uid"` | 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,10 +785,59 @@ func DoHttpPost(bys []byte) (string, error) { | ||
785 | } | 785 | } |
786 | 786 | ||
787 | func GetCoinFromSdk(uuid int, gameid string, channel string) (int, error) { | 787 | func GetCoinFromSdk(uuid int, gameid string, channel string) (int, error) { |
788 | - | 788 | + var paramlist []string |
789 | var params GetCoinDesc | 789 | var params GetCoinDesc |
790 | params.Sign_type = "md5" | 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 | func AddCoinToSdk(uuid int, goldnum int, gameid string, channel string, atype int) (int, error) { | 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,7 +859,7 @@ func AddCoinToSdk(uuid int, goldnum int, gameid string, channel string, atype in | ||
810 | 859 | ||
811 | sumparam := GettotalParam(paramlist) | 860 | sumparam := GettotalParam(paramlist) |
812 | //加serverkey | 861 | //加serverkey |
813 | - signsum := sumparam + XIAOXINGXING_SERVERKEY | 862 | + signsum := sumparam + XIAOXINGXING_SERVERKEYTEST |
814 | logger.Info("AddCoinToSdk sumparam=%v", signsum) | 863 | logger.Info("AddCoinToSdk sumparam=%v", signsum) |
815 | 864 | ||
816 | //进行hash | 865 | //进行hash |
@@ -838,10 +887,97 @@ func AddCoinToSdk(uuid int, goldnum int, gameid string, channel string, atype in | @@ -838,10 +887,97 @@ func AddCoinToSdk(uuid int, goldnum int, gameid string, channel string, atype in | ||
838 | } | 887 | } |
839 | 888 | ||
840 | logger.Info("AddCoinToSdk res=%v", res) | 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 | func GetCashFromSDK(uuid int, goldnum int, gameid, channel, openid, nickname, headurl string) (int, error) { | 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 | } |