数字营销
标准API开放接口规范
1.文档说明
2.接口规则
3.标准接口定义
会员营销
3.1.1会员账户信息查询
3.1.2会员充值
3.1.13第三方优惠试算
3.1.5会员注册
3.1.6统一登录注册
3.1.7会员商户优惠试算
3.1.10会员基本信息查询
3.1.16会员绑储值卡
3.1.17会员实名
3.1.18会员充值查询
3.1.21会员绑定实体卡(开卡)
3.1.22会员卡密码修改
3.1.23会员调账
3.1.24会员调账查询
3.1.25会员状态变更
3.1.26发送短信验证码
3.1.28会员消费查询
3.1.29会员消费撤销
3.1.30会员消费撤销查询
3.1.31会员无密码消费
3.1.32会员消费
3.1.34会员信息更新
3.1.35会员账户流水
3.1.37 获取用户基本信息(OAuth2)
3.1.38 获取基础营销授权链接
3.3.1 H5页面调用绑定微信和手机号(GET)
3.3.2 H5页面调用绑定微信和外部顾客编号(GET)
卡券营销
3.2.1卡/券查询
3.2.2发卡/券
3.2.4卡/券作废
3.2.5卡/券核券撤销
3.2.7发卡/券(套券)
3.2.8发卡/券查询
3.2.9作废优惠券发券
3.2.10储值卡充值
3.2.11储值卡充值查询
3.2.12实体储值卡激活(单张)
3.2.13可发卡/券列表查询(套)
3.2.14卡/券批量查询
3.2.15卡/券鉴权
3.2.16卡/券动态二维码生成
3.2.17卡/券转赠
3.2.18卡/券发放查询
3.2.19卡/券核销查询
3.2.20卡/券核销撤销查询
3.2.21卡/券模板详情查询
3.2.22 卡/券交易流水查询
3.2.23储值卡调账
3.2.24储值卡调账查询
3.2.25 卡/券交易流水分页查询
3.2.26 作废卡/券发放
3.2.27卡/券核销
3.2.33卡/券动账流水
3.2.35券号查询该顾客同券模板下的券号列表
3.2.36卡/券冻结
3.2.45卡券延期
外部平台券
3.2.28第三方核券准备接口
3.2.29第三方核券接口
3.2.30第三方核券流水查询接口
3.2.31第三方撤销核券接口
3.2.32第三方券码查询接口
3.2.34第三方门店验券历史接口
3.2.35券号查询该顾客同券模板下的券号列表
3.2.38美团到店综合预约数据
3.2.39美团到店综合消费数据
3.2.40美团到店综合团单消费详情数据
3.2.41美团到店综合门店流量数据
3.2.42美团餐饮门店套餐映射
3.2.43美团到店综合门店商品信息
3.2.44抖音商品线上数据
3.2.46抖音综合提现记录查询
3.2.47抖音综合账单详情查询
3.2.48抖音订单查询
3.2.49抖音账单详细查询
3.2.50抖音券状态批量查询
订单同步
3.5.1外部订单同步
3.5.2外部订单查询
3.5.3外部订单同步撤销
3.5.17外部订单核销
3.5.18外部订单查询
3.5.19外部订单撤销
订单支付
3.5.9订单查询
3.5.10订单退款
3.5.11退款订单查询
3.5.12统一扫码
3.5.13终端信息采集
3.5.14统一支付
3.5.15 ISV收银台
3.5.16生成订单
3.5.20终端信息查询
3.5.23分账确认
3.5.24分账确认结果查询
7.1终端信息字段说明
7.2 splitList字段说明
账户类
3.9.1 资金管理余额查询
3.9.3 资金管理提现
3.9.4 资金管理提现结果查询
通知相关
3.10通知相关
5.1券核销通知
5.2会员注册/修改通知
5.3订单支付通知
5.4券核销撤销通知
5.5跨机构订单支付通知
5.6微信核销通知转发
5.7发券通知
5.8卡券充值通知
5.9支付宝核销通知转发
5.10 卡券变动通知
5.11 实体卡入库通知
5.13顾客注册/修改通知
5.15提现结果通知
5.16资金管理小b开通通知
对账文件
6.1对账文件
6.2 分账对账流水文件下载
6.3 对账流水文件下载
机构管理类
3.8.1外部门店信息同步
3.8.2 创建/修改机构用户
3.8.3 查询机构用户信息
3.8.4 机构统计信息查询
附录
7.1终端信息字段说明
7.2 splitList字段说明
7.3 店铺经营类型枚举
7.6 支付方式说明
7.7 paytypeinfo-支付方式参数说明
7.9渠道交易类型(trxCode)
7.10交易返回码(trxStatus)
7.11扩展参数说明
4.1 公共返回码(code)
4.开发参考
4.1 SDK参考概述
4.2 Java SDK
4.3 Python SDK
4.4 PHP SDK
4.5 GO SDK
4.6 C# SDK
一码付开放接口规范
1.接口说明
2.接口规则
3.标准API
3.1统一扫码
3.2统一撤销
3.3统一退款
3.4统一查询
3.5交易结果通知
3.6订单生成
3.7终端信息采集报备
3.8统一支付
3.9资金管理余额查询
3.10资金管理提现
3.11资金管理提现结果查询
3.12资金管理转账
3.13资金管理转账结果查询
3.14终端信息查询
3.15订单关闭
3.16ISV收银台
3.17ISV前端跳转
3.18对账流水文件下载
3.19根据授权码(付款码)获取用户ID
3.20资金管理提现通知
3.21分账/收款确认
3.22分账/收款确认结果查询
3.23资金管理转账通知
3.24资金管理批量转账
3.25资金管理批量转账结果查询
3.26B2B订单支付收款
3.27B2B订单支付付款
3.31代付
3.32代付订单查询
3.33资金管理交易文件查询
3.34收支明细查询
3.35交易列表查询
4.附录
4.1 接口返回码retcode说明
4.2 交易返回码trxstatus说明
4.3 交易类型
4.4 支付渠道优惠信息填写规范(benefitdetail字段)
4.5 拓展参数说明(extendparams)
4.6 终端信息字段说明
4.7 asinfo字段说明
4.8 交易方式
4.9 splitlist字段说明
4.10支付方式
4.11paytypeinfo-支付方式参数说明
4.12民生/平安银行转账子账簿信息
5.13微信订单支付(小程序资金管控)接入说明
5.开发参考
5.1 SDK参考概述
5.2 Java SDK
5.3 C SDK
5.4 PHP SDK
5.5 GO SDK
通惠API开放接口规范
1. 文档说明
2. 接口规则
3.标准接口定义
3.1会员信息类
3.3页面调用类
3.4 银行活动类
3.7 互动营销类
3.8 机构管理类
4.公共返回码
5.通知相关
6.对账文件类
7.开发参考
8.接口权限申请表下载
9.常见问题合集
通联核心产品文档中心
-
+
首页
5.5 GO SDK
# 一码付SDK (AllinpayShopointOCPaySDK) 一码付SDK是用于集成一码付支付功能的Go语言SDK。 ## 功能特性 - 支持灵活的API请求(支付、查询、退款等) - RSA签名验签 - HTTP POST请求处理 - 完整的错误处理 - 支持配置文件和环境变量配置 - 自动配置检测和验证 - 响应数据便捷处理 ## 快速开始 ### 下载SDK [点击下载](https://dms.shopoint.cn/openapis/sdk/go.zip) ### 方式1: 使用配置文件 1. 复制配置模板文件: ```bash cp config.template.json config.json ``` 2. 编辑 `config.json` 文件,填入实际配置: ```json { "appid": "your_app_id", "sign_type": "RSA", "private_key": "-----BEGIN PRIVATE KEY-----\nYOUR_PRIVATE_KEY_CONTENT_HERE\n-----END PRIVATE KEY-----", "public_key": "-----BEGIN PUBLIC KEY-----\nYOUR_PUBLIC_KEY_CONTENT_HERE\n-----END PUBLIC KEY-----", "debug_enabled": true } ``` 3. 使用SDK: ```go package main import ( "log" "allinpay-shopoint-sdk-go/ocpay-sdk" ) func main() { // 从配置文件加载配置 config, err := ocpaysdk.LoadConfigFromFile("config.json") if err != nil { log.Fatalf("加载配置失败: %v", err) } // 创建SDK实例 sdk := ocpaysdk.NewAllinpayShopointOCPaySDK() if err := sdk.SetConfig(*config); err != nil { log.Fatalf("配置SDK失败: %v", err) } // 发起支付请求 paymentParams := map[string]interface{}{ "reqsn": ocpaysdk.GenerateReqSN(), "trxamt": 28940, // 289.40元 = 28940分 "goodsdesc": "测试商品", "notifyurl": "https://your-domain.com/notify", "returnurl": "https://your-domain.com/return", } paymentEndpoint := "https://api.example.com/pay" resp, err := sdk.Request(paymentEndpoint, paymentParams) if err != nil { log.Fatalf("支付请求失败: %v", err) } if resp.IsSuccess() { log.Println("请求成功!") log.Printf("交易ID: %s", resp.GetTrxID()) } else { log.Printf("请求失败: %s", resp.GetErrorMessage()) } } ``` ### 方式2: 使用环境变量 1. 设置环境变量: ```bash export OCPAY_APP_ID="your_app_id" export OCPAY_SIGN_TYPE="RSA" export OCPAY_PRIVATE_KEY="-----BEGIN PRIVATE KEY----- YOUR_PRIVATE_KEY_CONTENT_HERE -----END PRIVATE KEY-----" export OCPAY_PUBLIC_KEY="-----BEGIN PUBLIC KEY----- YOUR_PUBLIC_KEY_CONTENT_HERE -----END PUBLIC KEY-----" export OCPAY_DEBUG="true" ``` 2. 使用SDK: ```go package main import ( "log" "allinpay-shopoint-sdk-go/ocpay-sdk" ) func main() { // 从环境变量加载配置 config := ocpaysdk.LoadConfigFromEnv() // 验证配置 if err := config.Validate(); err != nil { log.Fatalf("配置验证失败: %v", err) } // 创建SDK实例 sdk := ocpaysdk.NewAllinpayShopointOCPaySDK() if err := sdk.SetConfig(*config); err != nil { log.Fatalf("配置SDK失败: %v", err) } // 后续使用与方式1相同... } ``` ## 运行示例 ### 基础示例 ```bash cd ocpay-sdk go run example.go ``` ### 交易查询示例 ```bash cd ocpay-sdk/examples go run demo.go ``` ## API文档 ### 配置结构 ```go type Config struct { AppID string `json:"appid"` // 应用ID SignType string `json:"sign_type"` // 签名类型 (RSA) PrivateKey string `json:"private_key"` // RSA私钥(用于签名) PublicKey string `json:"public_key"` // RSA公钥(用于验签) DebugEnabled bool `json:"debug_enabled"` // 是否启用调试模式 } ``` ### 核心方法 ```go // 创建SDK实例 func NewAllinpayShopointOCPaySDK() *AllinpayShopointOCPaySDK // 设置配置 func (sdk *AllinpayShopointOCPaySDK) SetConfig(config Config) error // 发起灵活的请求 - 核心方法 func (sdk *AllinpayShopointOCPaySDK) Request(endpoint string, params map[string]interface{}) (*ResponseHelper, error) ``` ### 配置加载函数 ```go // 从JSON文件加载配置 func LoadConfigFromFile(filename string) (*Config, error) // 从环境变量加载配置 func LoadConfigFromEnv() *Config // 验证配置 func (c *Config) Validate() error ``` ### 使用示例 ```go // 支付请求 paymentParams := map[string]interface{}{ "reqsn": ocpaysdk.GenerateReqSN(), "trxamt": 28940, "goodsdesc": "测试商品", "notifyurl": "https://your-domain.com/notify", "returnurl": "https://your-domain.com/return", } paymentEndpoint := "https://api.example.com/pay" resp, err := sdk.Request(paymentEndpoint, paymentParams) // 查询请求 queryParams := map[string]interface{}{ "cusid": "266649", "version": "11", "reqsn": "202509108000002", "randomstr": ocpaysdk.GenerateRandomString(16), } queryEndpoint := "https://dms-api-test.shopoint.cn/shopoint-openapis-web/szyx/apiweb/tranx/query" resp, err := sdk.Request(queryEndpoint, queryParams) // 退款请求 refundParams := map[string]interface{}{ "reqsn": ocpaysdk.GenerateReqSN(), "orig_trxid": "original_transaction_id", "refund_amt": 10000, "refund_reason": "用户申请退款", } refundEndpoint := "https://api.example.com/refund" resp, err := sdk.Request(refundEndpoint, refundParams) ``` ### 响应处理 SDK返回 `ResponseHelper` 对象,提供便捷的响应处理方法: ```go // 获取基本信息 retCode := resp.GetRetCode() // 返回码 trxID := resp.GetTrxID() // 交易ID trxStatus := resp.GetTrxStatus() // 交易状态 reqSN := resp.GetReqSN() // 请求序列号 trxAmt := resp.GetTrxAmt() // 交易金额 // 获取自定义字段 userID := resp.GetString("userid") orderID := resp.GetString("orderid") extData := resp.GetString("extdata") // 类型转换 amount := resp.GetInt("trxamt") // 转换为整数 discount := resp.GetFloat("discount") // 转换为浮点数 isVip := resp.GetBool("is_vip") // 转换为布尔值 // 检查字段是否存在 if resp.Has("custom_field") { value := resp.GetString("custom_field") } // 获取原始数据 rawData := resp.GetData() // map[string]interface{} rawJSON := resp.GetRaw() // 原始JSON字符串 // 状态检查 if resp.IsSuccess() { // 请求成功 } ``` ## 配置说明 ### 必需配置项 - `AppID`: 应用ID,由一码付平台分配 - `SignType`: 签名类型,支持 RSA - `PrivateKey`: RSA私钥,用于请求签名,需要妥善保管,由对接方生成 - `PublicKey`: RSA公钥,用于响应验签,由一码付平台提供 ### 可选配置项 - `DebugEnabled`: 是否启用调试模式,开启后会打印详细日志 ### 环境变量对应关系 | 配置项 | 环境变量 | 默认值 | |--------|----------|--------| | AppID | OCPAY_APP_ID | - | | SignType | OCPAY_SIGN_TYPE | RSA | | PrivateKey | OCPAY_PRIVATE_KEY | - | | PublicKey | OCPAY_PUBLIC_KEY | - | | DebugEnabled | OCPAY_DEBUG | false | ## 错误处理 SDK提供详细的错误信息,包括: - 配置错误 (ErrInvalidAppID, ErrInvalidPrivateKey 等) - 签名验签错误 (ErrSignFailed, ErrVerifyFailed) - 网络请求错误 (ErrNetworkFailed) - 响应解析错误 (ErrInvalidResponse) ## 注意事项 1. **安全性** - 请妥善保管RSA私钥,不要泄露到代码仓库 - 建议将敏感配置放在环境变量中 - 生产环境建议关闭调试模式 2. **配置管理** - 配置文件不要提交到版本控制系统 - 可以提交 `config.template.json` 作为配置模板 - 使用 `.gitignore` 忽略 `config.json` 文件 3. **开发建议** - 确保时间同步,避免签名验证失败 - 建议在生产环境中启用HTTPS - 请求序列号需要保证唯一性 4. **测试** - 可以运行 `example.go` 进行基础功能测试 - 可以运行 `examples/demo.go` 进行交易查询测试 - 生产环境请使用真实的配置信息
陈志平chenzp3
2026年2月3日 09:43
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Word文件
PDF文档
分享
链接
类型
密码
更新密码
有效期