Commit 49c764a2e0bed93cec50c77480fcb24e0cdc97c3

Authored by 陆恒
1 parent f3b813ee

提现接入后端SDK

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