|
|
# 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 SDK进行用户身份验证、订单支付和订单退款操作。 |