数字营销
标准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.常见问题合集
通联核心产品文档中心
-
+
首页
4.5 GO SDK
# Standard SDK - 数字营销开放接口SDK 这个目录包含了数字营销开放接口的标准SDK实现,提供完整的API调用、加密解密、日期工具等功能。 ## 功能特性 - **API请求处理**: 完整的数字营销开放接口调用流程 - **加密解密**: RSA加密/解密和签名/验签(支持PKCS#8和PKCS#1格式) - **AES加密**: AES加密/解密(ECB模式) - **日期工具**: 位掩码解析工具类(月份、周、日期) - **配置管理**: 支持配置文件和环境变量 - **错误处理**: 中文错误提示,便于调试 - **测试覆盖**: 完整的单元测试和覆盖率报告 ## 目录结构 ### 核心SDK文件 - `allinpay_shopoint_standard_sdk.go` - 标准接口SDK主要实现 - `date_utils.go` - 日期位掩码工具函数 - `config_example.go` - 配置加载示例代码 ### 示例和测试文件 - `example.go` - 基础功能演示示例 - `examples/demo.go` - 完整的演示程序 - `allinpay_shopoint_standard_sdk_test.go` - SDK单元测试 ### 配置文件 - `config.template.json` - 配置模板 - `config.test.json` - 测试配置 ## 快速开始 ### 下载SDK [点击下载](https://dms.shopoint.cn/openapis/sdk/go.zip) ### 1. 基本配置 ```go package main import ( "encoding/json" "fmt" "log" "allinpay-shopoint-sdk-go/standard-sdk" ) func main() { // 创建SDK实例 sdk := standardsdk.NewAllinpayShopointStandardSDK() // 配置SDK参数 sdk.OpenAPIsEndpoint = "https://dms-api-test.shopoint.cn/shopoint-openapis-web/apis/v3" sdk.OpenAPIsAppID = "YOUR_APP_ID" sdk.OpenAPIsPublicKey = `-----BEGIN PUBLIC KEY----- SHOPOINT_PUBLIC_KEY_CONTENT_HERE -----END PUBLIC KEY-----` sdk.CallerPrivateKey = `-----BEGIN PRIVATE KEY----- CALLER_PRIVATE_KEY_CONTENT_HERE -----END PRIVATE KEY-----` // 可选:设置调试模式 sdk.DebugEnabled = true } ``` ### 2. 使用配置文件 1. 复制配置模板: ```bash cp config.template.json config.test.json ``` 2. 编辑配置文件,填入真实配置 3. 使用配置文件: ```go // 从配置文件加载 config, err := standardsdk.LoadConfigFromFile("config.test.json") if err != nil { log.Fatalf("加载配置失败: %v", err) } sdk := standardsdk.NewAllinpayShopointStandardSDK() config.ApplyConfig(sdk) ``` ### 3. 发送API请求 ```go // 示例:会员查询接口 method := "allinpay.shopoint.memberService.memberQuery" // 构建业务请求参数 bizParams := map[string]interface{}{ "idType": "1", "memberId": "13681694175", } bizContent, err := json.Marshal(bizParams) if err != nil { log.Fatalf("Failed to marshal biz content: %v", err) } // 发送请求 result, err := sdk.SendRequest(method, string(bizContent), "1.0") if err != nil { log.Fatalf("Failed to send request: %v", err) } fmt.Printf("Result: %s\n", result) ``` ### 4. 使用日期工具 ```go dateUtils := &standardsdk.DateUtils{} // 解析月份位掩码 (7 = 111二进制 = 1、2、3月) months, err := dateUtils.GetMonthsInt(7) if err != nil { log.Printf("Failed to get months: %v", err) } else { fmt.Printf("Months: %v\n", months) // 输出: [1 2 3] } // 解析周位掩码 (5 = 101二进制 = 周一、周三) weeks, err := dateUtils.GetWeeksInt(5) if err != nil { log.Printf("Failed to get weeks: %v", err) } else { fmt.Printf("Weeks: %v\n", weeks) // 输出: [1 3] } // 解析日期位掩码 (15 = 1111二进制 = 1、2、3、4日) dates, err := dateUtils.GetDatesInt(15) if err != nil { log.Printf("Failed to get dates: %v", err) } else { fmt.Printf("Dates: %v\n", dates) // 输出: [1 2 3 4] } ``` ## 运行示例 ### 基础功能测试 ```bash cd standard-sdk go run allinpay_shopoint_standard_sdk.go date_utils.go config_example.go example.go ``` ### 完整演示程序 ```bash cd standard-sdk/examples go run demo.go ``` ### 运行测试 ```bash cd standard-sdk go test -v ``` ### 生成测试覆盖率报告 ```bash cd standard-sdk go test -coverprofile=coverage.out go tool cover -html=coverage.out -o coverage.html ``` ## API方法 ### AllinpayShopointStandardSDK 结构体方法 - `NewAllinpayShopointStandardSDK()` - 创建新的SDK实例 - `SendRequest(method, bizContent, version string)` - 发送业务接口请求 - `RSAPrivateSign(data, privateKey string)` - 私钥签名 - `RSAPublicVerify(data, sign, publicKey string)` - 公钥验签 - `RSAPublicEncrypt(data, publicKey string)` - 公钥加密 - `RSAPrivateDecrypt(data, privateKey string)` - 私钥解密 - `AESEncrypt(data string, key []byte)` - AES加密 - `AESDecrypt(data string, key []byte)` - AES解密 ### DateUtils 工具类方法 - `GetMonthsInt(month int)` - 解析月份位掩码 - `GetDatesInt(date int)` - 解析日期位掩码 - `GetWeeksInt(week int)` - 解析周位掩码 ## 日期工具业务场景示例 ```go dateUtils := &standardsdk.DateUtils{} // 工作日配置 (周一到周五) workdays := 1 + 2 + 4 + 8 + 16 // 31 weeks, _ := dateUtils.GetWeeksInt(workdays) fmt.Printf("工作日: %v\n", weeks) // 输出: [1 2 3 4 5] // 季度末月份配置 (3,6,9,12月) quarterEnd := 4 + 32 + 256 + 2048 // 2340 months, _ := dateUtils.GetMonthsInt(quarterEnd) fmt.Printf("季度末: %v\n", months) // 输出: [3 6 9 12] // 月初配置 (1-15日) monthStart := (1 << 15) - 1 // 32767 dates, _ := dateUtils.GetDatesInt(monthStart) fmt.Printf("月初: %v\n", dates) // 输出: [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15] ``` ## 配置要求 ### 系统要求 - Go版本:1.19+ - 操作系统:支持Windows、macOS、Linux ### 密钥要求 - 密钥长度:2048位及以上 - 密钥格式:PKCS#8 (推荐) 或 PKCS#1 - 签名算法:RSA-PKCS1v15 + SHA256 ### 必需配置 - `OpenAPIsEndpoint`: 数字营销接口地址 - `OpenAPIsAppID`: 数字营销分配的AppID - `OpenAPIsPublicKey`: 数字营销分配的RSA公钥 - `CallerPrivateKey`: 对接方的RSA私钥 - `DebugEnabled`: 调试模式开关(可选) ## 安全注意事项 ⚠️ **重要安全提醒** 1. **私钥保护**: 私钥信息极其敏感,请勿在代码中硬编码或提交到版本控制系统 2. **环境变量**: 建议使用环境变量或安全的配置文件管理敏感信息 3. **权限控制**: 确保只有授权人员能够访问私钥文件 4. **定期轮换**: 定期更换密钥以提高安全性 ### 推荐的配置方式 #### 方法1: 使用环境变量 (推荐) ```bash # 设置环境变量 export SHOPOINT_API_ENDPOINT="https://your-api-endpoint" export SHOPOINT_APP_ID="your_app_id" export SHOPOINT_PUBLIC_KEY="-----BEGIN PUBLIC KEY----- shopoint_public_key_content -----END PUBLIC KEY-----" export CALLER_PRIVATE_KEY="-----BEGIN PRIVATE KEY----- caller_private_key_content -----END PRIVATE KEY-----" export SHOPOINT_DEBUG="true" ``` #### 方法2: 使用配置文件 1. 复制 `config.template.json` 为 `config.test.json` 2. 填入真实的配置信息 3. 使用 `config_example.go` 中的方法加载配置 ## 注意事项 1. 请确保密钥格式正确,支持PKCS#8和PKCS#1格式 2. 调试模式会输出详细的请求和响应日志 3. 所有的加密和签名都使用RSA-PKCS1v15和SHA256算法 4. AES加密使用ECB模式,128位密钥 5. 请求会自动进行签名和验签,确保数据安全 ## 错误处理 SDK中的所有方法都会返回适当的错误信息,请务必检查错误并进行相应处理。 ```go result, err := sdk.SendRequest(method, bizContent, version) if err != nil { log.Printf("Request failed: %v", err) return } ```
陈志平chenzp3
2026年2月2日 10:38
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Word文件
PDF文档
分享
链接
类型
密码
更新密码
有效期