# WT-Game 使用操作文档 ## 概述 欢迎使用 WT-Game 。本文档将介绍如何安装、初始化和使用登录SDK、订单支付SDK以及订单退款SDK。这些SDK提供了用户登录验证、订单支付签名生成和订单退款签名生成的功能。 ## 安装 通过Go模块管理工具`go get`安装SDK: ```bash go get gitea.weitiangame.com/sdk/wt-game ``` ## 登录SDK ### 初始化 ```go import ( "gitea.weitiangame.com/sdk/wt-game/wt_sdk" ) // 初始化SDK,传入密钥secretKey loginSdk := sdk.NewLogin("your_secret_key") ``` ### 使用方法 #### 验证Token ```go err := loginSdk.VerifyToken(accessKey, uid) if err != nil { // 处理错误 return } // 验证通过,进行后续操作 ``` ### 错误码 - `ACCESS_TOKEN_ERROR`: 访问令牌错误 - `INVALID_TIMESTAMP`: 无效的时间戳 - `TIMESTAMP_ERROR`: 时间戳错误 ### 示例代码 ```go package main import ( "fmt" "gitea.weitiangame.com/sdk/wt-game/wt_sdk" ) func main() { loginSdk := wt_sdk.NewLogin("your_secret_key") accessKey := "keyPart.timestamp.md5Part" uid := "user_unique_id" err := loginSdk.VerifyToken(accessKey, uid) if err != nil { fmt.Println("验证失败,错误码:", err.Error()) return } fmt.Println("验证通过,用户身份合法") } ``` ## 订单支付SDK ### 初始化 ```go // 初始化SDK实例 sdkInstance := wt_sdk.NewOrderPayment("your_secret_key") ``` ### 生成签名 ```go order := &wt_sdk.Order{ Uid: "12345", BsTradeNo: "TRADE20231010001", // 设置其他字段 } sign, err := sdkInstance.SignParam(order) if err != nil { // 处理错误 } ``` ### 示例代码 ```go package main import ( "fmt" "gitea.weitiangame.com/sdk/wt-game/wt_sdk" ) func main() { sdkInstance := wt_sdk.NewOrderPayment("your_secret_key") order := &sdk.Order{ Uid: "12345", BsTradeNo: "TRADE20231010001", // 设置其他字段 } sign, err := sdkInstance.SignParam(order) if err != nil { fmt.Println("生成签名失败:", err) return } fmt.Println("签名:", sign) } ``` ## 订单退款SDK ### 初始化 ```go refundSdkInstance := wt_sdk.NewRefundSDK("your_secret_key") ``` ### 生成签名 ```go orderRefund := &wt_sdk.OrderRefund{ OutTradeNo: "OUT20231010001", // 设置其他字段 } sign := refundSdkInstance.SignParam(orderRefund) ``` ### 示例代码 ```go package main import ( "fmt" "gitea.weitiangame.com/sdk/wt-game/wt_sdk" ) func main() { refundSdkInstance := wt_sdk.NewRefundSDK("your_secret_key") orderRefund := &wt_sdk.OrderRefund{ OutTradeNo: "OUT20231010001", // 设置其他字段 } sign := refundSdkInstance.SignParam(orderRefund) fmt.Println("签名:", sign) } ``` ## 共同注意事项 1. **密钥保管**: 确保密钥安全,避免泄露。 2. **参数格式**: 确保参数格式正确,特别是时间戳和金额字段。 3. **签名一致性**: 确保签名生成的参数和顺序与对方系统一致。 ## 附录 ### Order 结构体字段说明 | 字段名 | 说明 | |-----------------|--------------------------| | Uid | 用户ID | | BsTradeNo | 交易编号 | | Role | 用户角色 | | RoleId | 角色ID | | ServerId | 服务器ID | | GoodsName | 商品名称 | | OutTradeNo | 外部交易编号 | | Body | 商品描述 | | CpExtraInfo | 扩展信息 | | TradeState | 交易状态 | | TotalFee | 总费用 | | PayFee | 支付费用 | | PayTime | 支付时间 | ### OrderRefund 结构体字段说明 | 字段名 | 说明 | |-------------|----------------| | OutTradeNo | 订单号 | | RoleId | 角色ID | | Status | 订单状态 | | RefundFee | 退款金额 | | Timestamp | 时间戳 | 通过以上步骤,您可顺利使用WT-Game SDKs进行用户身份验证、订单支付和订单退款操作。