Commit 49c764a2e0bed93cec50c77480fcb24e0cdc97c3

Authored by 陆恒
1 parent f3b813ee

提现接入后端SDK

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(&params)
  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(&params)
  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 }