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/sdk
zhuxianglong 7ac1b15031 no message 2 months ago
..
README.md no message 2 months ago
order_sign.go 验签优化 2 months ago
refund_sign.go 验签优化 2 months ago

README.md

SDK 使用操作文档

概述

该 SDK 提供了订单支付和订单退款的签名生成功能。通过传入相应的订单信息和密钥,可以生成用于验证的签名。

目录

  1. 订单支付 SDK
  2. 初始化 SDK
  3. 生成签名
  4. 示例代码
  5. 订单退款 SDK
  6. 初始化 SDK
  7. 生成签名
  8. 示例代码
  9. 注意事项

订单支付 SDK

初始化 SDK

使用 NewOrderPayment 函数初始化订单支付 SDK 实例。该函数采用单例模式,确保同一密钥对应的 SDK 实例唯一。

// 导入 SDK 包
import "gitea.weitiangame.com/sdk/wt-game/sdk"

// 初始化 SDK 实例
sdkInstance := sdk.NewOrderPayment("your_secret_key")

生成签名

创建 Order 结构体实例并设置相关字段,然后调用 SignParam 方法生成签名。

// 创建 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 {
    // 处理错误
}

示例代码

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 实例唯一。

// 导入 SDK 包
import "gitea.weitiangame.com/sdk/wt-game/sdk"

// 初始化 SDK 实例
refundSdkInstance := sdk.NewRefundSDK("your_secret_key")

生成签名

创建 OrderRefund 结构体实例并设置相关字段,然后调用 SignParam 方法生成签名。

// 创建 OrderRefund 实例
orderRefund := &sdk.OrderRefund{
    OutTradeNo: "OUT20231010001",
    RoleId:     "67890",
    Status:     "SUCCESS",
    RefundFee:  "10",
    Timestamp:  "20231010120000",
}

// 生成签名
sign := refundSdkInstance.SignParam(orderRefund)

示例代码

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 时间戳