PayJS SDK for Go 技术文档
安装指南
要开始使用 PayJS 的 Golang SDK,您只需要执行一个简单的命令来获取最新的库:
go get github.com/qingwg/payjs
这将下载 SDK 到您的 Go 工作区的相应目录中。
项目的使用说明
基本配置与初始化
在使用 PayJS SDK 之前,首先需要设置基本的配置项,如通信密钥、商户号以及异步通知地址:
import "github.com/qingwg/payjs"
payjsConfig := &payjs.Config{
Key: "您的PayJS通信密钥", // 必须替换为您实际的密钥
MchID: "您的商户号",
NotifyUrl: "http://yourdomain.com/path/to/notify", // 异步通知的路由
}
// 初始化 PayJS 实例
Pay = payjs.New(payjsConfig)
项目API使用文档
扫码支付
发起扫码支付请求的示例代码如下:
req := &payjs.RequestNative{
TotalFee: 100, // 示例金额,单位分
Body: "商品描述",
OutTradeNo: "ORDER1234567890", // 自定义订单号
}
response, err := Pay.GetNative().Create(req)
if err != nil {
// 处理错误
} else if response.ReturnCode == 1 {
// 成功处理逻辑
qrcode := response.CodeUrl // 获取二维码URL
} else {
// 错误逻辑
}
其它支付方式
类似于扫码支付,其他支付方式(如付款码支付、收银台支付、JSAPI支付、小程序支付、人脸支付等)的调用也遵循类似的模式,构建对应的Request结构体,并调用相应的创建方法。例如对于JSAPI支付,您需要先获取用户的OpenID并确保签名正确处理已知的签名验证问题。
订单管理
查询: 要查询订单状态,使用GetOrder()并调用Check()方法。关闭: 若要关闭订单,使用相同的GetOrder(),然后调用Close()方法,传入订单ID。
注意事项
当遇到签名验证相关的问题,尤其是多级嵌套数据结构时,确保所有参与签名的数据序列化方式与PayJS要求一致,可能需要特殊处理以适应其签名算法。在实际应用中,务必对返回的状态码和消息进行详细检查,处理各种可能的错误情况。对于某些特定功能,如人脸支付,由于依赖外部硬件,可能需要额外的准备和测试环境。
总结
本文档提供了 PayJS SDK for Go 的快速入门指南,从安装到基础配置,再到各个支付方式的使用细节。开发者应仔细阅读每个API的文档,并在实际应用中充分测试,确保安全稳定地集成到自己的支付流程中。请注意,处理好签名和安全问题是集成第三方支付平台的关键。