- 接入流程
- 签名验签
- 通用错误码
接入流程
如何创建应用?
登录开放银行服务管理中心,在应用管理模块创建自己所需要的应用。应用的密钥可自主赋值或通 过提供的“自动生成密钥对”工具随机生成。生成后请将私钥拷贝到本地并妥善保管,服务器不保存任何私钥数据
如何申请接口权限?
在应用详情中申请需要签约的产品,管理员审核通过后即可拥有相关接口权限。每个产品可能包含 一个或多个API接口,具体参看接口文档
如何使用SDK?
我们提供多种开发语言的Server-Side SDK,你可以根据需要选择使用。参照接口文档中的“SDK接 入示例”三步骤:设置SDK密钥信息、准备请求参数和调用SDK方法
签名验签
为什么需要使用签名?
开放银行服务的数据传输使用RSA签名来验证数据可靠性,因此每个应用都需要设置RSA签名秘钥
如何使用私钥生成请求签名?
开发者发送给本系统的所有请求都需要进行签名,以确保是开发者系统发出的交易指令,具体的签名规则如下:
- 将有效的GET或POST参数组成“参数键=参数值”的格式,如order_ amount=100
- 将上步中所有的“参数键=参数值”按参数键以字典序进行排序
- 使用英文半角的&符号将2步中排序后的字符串连接起来,如key1=value1&key2=value2…,注意字符串最后没有&
- 在字符串前部附加KEYID&TIMESTAMP&METHOD&URI格式字符串,其中TIMESTAMP为当前时 间,格式如20160516120000;METHOD为HTTP方法,使用大写,如GET、POST等;URI为当前 请求的资源地址,如/v1/open(域名之后,?之前)等。拼装后的报文格式类似如下: KY0123456789012345678900&20160516120000&POST&/v1/open&channel=PAY_C IBEPAY&order_amount=100
- 使用应用的RSA私钥,以SHA256withRSA算法签名上述字符串,得到的结果(Base64编码的)即为签名值
- 以KEYID_TIMESTAMP作为用户名,5步中得到的签名值作为密码,在发送请求时,作为HTTP BASIC认证的username和password即可
如何使用开放银行服务公钥验证响应签名?
本系统支持对请求响应报文进行签名,并将签名值随同响应报文返回。用户使用开放银行服务公钥 进行响应报文的验签,验证数据的可靠性,具体说明如下:
- 签名内容为时间戳+报文内容
- 签名值及时间戳在返回的Headers中,分别是Signature、Timestamp
- 开发者对响应报文验签使用应用的RSA公钥(响应报文验签),以RSAWithSHA1算法对接收的时间戳+报文数据进行验签操作
验签为什么使用开放银行服务公钥而不是开发者公钥?
因为服务器未保存用户应用任何私钥信息,响应报文签名使用服务器的秘钥对自动签名得到
通用错误码
CODE | 说明 |
---|---|
OPEN25001 | 验签失败 |
OPEN25002 | 请求过期 |
OPEN25003 | 未配置密钥信息 |
OPEN25004 | 超过调用频率限制 |
OPEN25101 | 输入参数格式错误 |
OPEN25201 | 没找到对应的请求资源 |
OPEN25202 | 没找到对应的商户信息 |
OPEN25203 | 该请求无权限访问 |
OPEN25204 | 请求参数未找到 |
OPEN25205 | 没有找到对应的服务 |
OPEN25206 | 权限不足 |
OPEN25207 | 文件不存在或传输异常 |
OPEN25301 | 调用服务参数不符合要求 |
OPEN25302 | 后端服务返回未知异常 |
OPEN25999 | 系统繁忙,如为交易类接口,请先确认交易结果后再处理 |