You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wt-game/wt_sdk/README.md

199 lines
4.2 KiB
Markdown

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