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的文档,并在实际应用中充分测试,确保安全稳定地集成到自己的支付流程中。请注意,处理好签名和安全问题是集成第三方支付平台的关键。