no message
parent
7ac1b15031
commit
0872d88acb
@ -1,210 +0,0 @@
|
|||||||
## SDK 使用操作文档
|
|
||||||
|
|
||||||
### 概述
|
|
||||||
|
|
||||||
该 SDK 提供了订单支付和订单退款的签名生成功能。通过传入相应的订单信息和密钥,可以生成用于验证的签名。
|
|
||||||
|
|
||||||
### 目录
|
|
||||||
|
|
||||||
1. [订单支付 SDK](#订单支付-sdk)
|
|
||||||
1. [初始化 SDK](#初始化-sdk)
|
|
||||||
2. [生成签名](#生成签名)
|
|
||||||
3. [示例代码](#示例代码)
|
|
||||||
2. [订单退款 SDK](#订单退款-sdk)
|
|
||||||
1. [初始化 SDK](#初始化-sdk-1)
|
|
||||||
2. [生成签名](#生成签名-1)
|
|
||||||
3. [示例代码](#示例代码-1)
|
|
||||||
3. [注意事项](#注意事项)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 订单支付 SDK
|
|
||||||
|
|
||||||
#### 初始化 SDK
|
|
||||||
|
|
||||||
使用 `NewOrderPayment` 函数初始化订单支付 SDK 实例。该函数采用单例模式,确保同一密钥对应的 SDK 实例唯一。
|
|
||||||
|
|
||||||
```go
|
|
||||||
// 导入 SDK 包
|
|
||||||
import "gitea.weitiangame.com/sdk/wt-game/sdk"
|
|
||||||
|
|
||||||
// 初始化 SDK 实例
|
|
||||||
sdkInstance := sdk.NewOrderPayment("your_secret_key")
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 生成签名
|
|
||||||
|
|
||||||
创建 `Order` 结构体实例并设置相关字段,然后调用 `SignParam` 方法生成签名。
|
|
||||||
|
|
||||||
```go
|
|
||||||
// 创建 Order 实例
|
|
||||||
order := &sdk.Order{
|
|
||||||
Uid: "12345",
|
|
||||||
BsTradeNo: "TRADE20231010001",
|
|
||||||
Role: "Player",
|
|
||||||
RoleId: "67890",
|
|
||||||
ServerId: "1",
|
|
||||||
GoodsName: "Diamond",
|
|
||||||
OutTradeNo: "OUT20231010001",
|
|
||||||
Body: "Purchase Diamond",
|
|
||||||
CpExtraInfo: "extra_info",
|
|
||||||
TradeState: "SUCCESS",
|
|
||||||
TotalFee: "100",
|
|
||||||
PayFee: "95",
|
|
||||||
PayTime: "20231010120000",
|
|
||||||
}
|
|
||||||
|
|
||||||
// 生成签名
|
|
||||||
sign, err := sdkInstance.SignParam(order)
|
|
||||||
if err != nil {
|
|
||||||
// 处理错误
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 示例代码
|
|
||||||
|
|
||||||
```go
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"gitea.weitiangame.com/sdk/wt-game/sdk"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
// 初始化 SDK 实例
|
|
||||||
sdkInstance := sdk.NewOrderPayment("your_secret_key")
|
|
||||||
|
|
||||||
// 创建 Order 实例
|
|
||||||
order := &sdk.Order{
|
|
||||||
Uid: "12345",
|
|
||||||
BsTradeNo: "TRADE20231010001",
|
|
||||||
Role: "Player",
|
|
||||||
RoleId: "67890",
|
|
||||||
ServerId: "1",
|
|
||||||
GoodsName: "Diamond",
|
|
||||||
OutTradeNo: "OUT20231010001",
|
|
||||||
Body: "Purchase Diamond",
|
|
||||||
CpExtraInfo: "extra_info",
|
|
||||||
TradeState: "SUCCESS",
|
|
||||||
TotalFee: "100",
|
|
||||||
PayFee: "95",
|
|
||||||
PayTime: "20231010120000",
|
|
||||||
}
|
|
||||||
|
|
||||||
// 生成签名
|
|
||||||
sign, err := sdkInstance.SignParam(order)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println("生成签名失败:", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println("签名:", sign)
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 订单退款 SDK
|
|
||||||
|
|
||||||
#### 初始化 SDK
|
|
||||||
|
|
||||||
使用 `NewRefundSDK` 函数初始化订单退款 SDK 实例。该函数采用单例模式,确保同一密钥对应的 SDK 实例唯一。
|
|
||||||
|
|
||||||
```go
|
|
||||||
// 导入 SDK 包
|
|
||||||
import "gitea.weitiangame.com/sdk/wt-game/sdk"
|
|
||||||
|
|
||||||
// 初始化 SDK 实例
|
|
||||||
refundSdkInstance := sdk.NewRefundSDK("your_secret_key")
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 生成签名
|
|
||||||
|
|
||||||
创建 `OrderRefund` 结构体实例并设置相关字段,然后调用 `SignParam` 方法生成签名。
|
|
||||||
|
|
||||||
```go
|
|
||||||
// 创建 OrderRefund 实例
|
|
||||||
orderRefund := &sdk.OrderRefund{
|
|
||||||
OutTradeNo: "OUT20231010001",
|
|
||||||
RoleId: "67890",
|
|
||||||
Status: "SUCCESS",
|
|
||||||
RefundFee: "10",
|
|
||||||
Timestamp: "20231010120000",
|
|
||||||
}
|
|
||||||
|
|
||||||
// 生成签名
|
|
||||||
sign := refundSdkInstance.SignParam(orderRefund)
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 示例代码
|
|
||||||
|
|
||||||
```go
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"gitea.weitiangame.com/sdk/wt-game/sdk"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
// 初始化 SDK 实例
|
|
||||||
refundSdkInstance := sdk.NewRefundSDK("your_secret_key")
|
|
||||||
|
|
||||||
// 创建 OrderRefund 实例
|
|
||||||
orderRefund := &sdk.OrderRefund{
|
|
||||||
OutTradeNo: "OUT20231010001",
|
|
||||||
RoleId: "67890",
|
|
||||||
Status: "SUCCESS",
|
|
||||||
RefundFee: "10",
|
|
||||||
Timestamp: "20231010120000",
|
|
||||||
}
|
|
||||||
|
|
||||||
// 生成签名
|
|
||||||
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 | 时间戳 |
|
|
||||||
|
|
||||||
---
|
|
@ -0,0 +1,7 @@
|
|||||||
|
package vo
|
||||||
|
|
||||||
|
const (
|
||||||
|
ACCESS_TOKEN_ERROR = "ACCESS_TOKEN_ERROR" // 访问令牌错误
|
||||||
|
INVALID_TIMESTAMP = "INVALID_TIMESTAMP" // 无效的时间戳
|
||||||
|
TIMESTAMP_ERROR = "TIMEZONE_ERROR" // 时间戳错误
|
||||||
|
)
|
@ -1,4 +1,4 @@
|
|||||||
package sdk
|
package wt_sdk
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"gitea.weitiangame.com/sdk/wt-game/utils"
|
"gitea.weitiangame.com/sdk/wt-game/utils"
|
@ -1,4 +1,4 @@
|
|||||||
package sdk
|
package wt_sdk
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"gitea.weitiangame.com/sdk/wt-game/utils"
|
"gitea.weitiangame.com/sdk/wt-game/utils"
|
Loading…
Reference in New Issue