Intepay开发文档
客户端—Intepay—三方支付时序图
上图是【客户端—Intepay—三方支付】的支付时序图。
图中所标数字,即为支付流程中对应的步骤。
一、步骤详解
其中,客户端对接Intepay,主要完成1、5、6这三个步骤。
二、接口信息
1.步骤一中调用的Intepay接口
方法:post
接口地址:【解析到Intepay的域名】+ /gateway/index/
说明:客户端应该对数据进行签名(加密),再传入Intepay。sign参数即是加密后的密文。
传入参数:
参数名 | 类型 | 必填 | 值【示例】 | 说明 |
timestamp | long | 是 | 1606388400 | 时间戳,每次计算签名取计算时间戳,以秒计算 |
nonce | String | 是 | FwDz60iV0nyVmaCUPkFDM8Yhn2VhPooc | 随机字符串,每次计算随机生成(不少于32位) |
msg_signature | String | 是 | 3aa84fef6768fb939d4913069d92cf95 | 消息体签名msg_signature = sha256(key+timestamp +nonce+msg_body) |
msg_body | String | 是 | 加密字符串,加密使用的 key 为支付秘钥,加密方法 AE S-256-CBC, iv = IB9N75V 82Q0KJ3BK。(新算法用 固定32位密钥进行签名, 旧密钥使用特殊符号 $ 补 位,超过32位的进行截断) | |
sign_version | String | 是 | v2 | 签名版本号(小写v) |
msg_body参数说明
参数名 | 类型 | 必填 | 值【示例】 | 说明 |
orderNo | string | 是 | 201712290802291683 | 客户端 生成订单号 |
name | string | 是 | 张三 | 姓名 |
phone | string | 是 | 91361245 | 电话 |
string | 是 | 邮箱 | ||
certificateNo | string | 是 | 44053819801130457x | 证件号码 |
pay_amount | float | 是 | 0.07 | 入金金额【人民币】单位元 |
usd_amount | float | 是 | 0.07 | 入金金额【美元】单位元 |
rate | float | 是 | 6.59683 | 汇率 最多 5 位小数 |
rtime | string | 是 | 2017-12-29 08:02:29 | 订单时间 |
uid | string | 是 | 266498 | 客户端 账户 ID |
returl | string | 是 | ||
noturl | string | 是 | 回调地址 | |
lang | string | 是 | cn | 当前的语言 |
country_code | string | 是 | 86 | 国际电话区号 |
extra_data | text | 是 | Json 格式。包含 客户端 中的所有汇率 |
msg_signature = sha256(key+timestamp+nonce+msg_body)
key 为加密密钥。
签名验证方式:比较msg_signature和回调接口中推送的字段msg_signature是否相等,相等则表示验证通过
2.步骤五和六中,Intepay向客户端传入的回调参数
方法:POST传入json数据
Intepay调用的回调地址,即是步骤一中,从客户端传入Intepay的noturl参数的值。客户端接收到数据后,应该要进行验签。sign参数加密后的密文。
参数名 | 类型 | 必填 | 值【示例】 | 说明 |
timestamp | long | 是 | 1606388400 | 时间戳,每次计算签名是获取计算时间戳 |
nonce | string | 是 | FwDz60iV0nyVmaCUPkFDM8Yhn2VhPooc | 随机字符串,每次计算随机生成 |
msg_signature | string | 是 | 3aa84fef6768fb939d4913069d92cf95 | 消息体签名 |
msg_body | string | 是 | 加密的回调参数 | 加密使用的 key 为支付秘钥,加密方法 AES-256-CBC, iv = IB9N75V82Q0KJ3BK。(新算法用固定32位密钥进行签名,旧密钥使用特殊符号 $ 补位,超过32位的进行截断) 见msg_body参数说明: |
sign_version | string | 是 | v2 | 签名版本号(小写v) |
order_no | string | 是 | 201712290802291683 | 客户端 生成订单号 |
msg_body参数说明:
参数名 | 类型 | 必填 | 值【示例】 | 说明 |
orderNo | string | 是 | 201712290802291683 | 客户端 生成订单号 |
pay_amount | string | 是 | 0.01 | 支付金额 |
trade_no | string | 是 | 91361245 | 第三方交易流水号 |
state | int | 是 | 1 | 标识已支付 0 成功 -1 失败 |
三、签名方式
申请Intepay的账号通过后,会生成一个通讯密钥,在下文中简称key。客户可以在Intepay的后台查看该密钥。
msg_signature = sha256(key+timestamp+nonce+msg_body)。