H5支付

1. 业务流程图

../_images/openapi_h5_payment1.png

2. 支付预下单接口

说明:用户支付预下单
接口地址:/pay/preOrder
请求方式:POST
请求参数:
参数名 数据类型 是否必须 说明
app_id string 应用ID
access_token string 授权access_token
lang string i18n 语言,固定zh_CN
version string 接口版本固定1.0
charset string 固定utf8
nonce_str string 32位随机数
sign string 参数签名 (此处签名请使用mch_key)
biz_content string 业务请求参数的集合json。注意,此处不需要urlencode,json格式的字符串即可

biz_content结构体

参数名 数据类型 是否必须 说明
openid string 用户openid
body string 订单说明,最多支持64字符
subject string 订单标题,最多支持32字符
out_trade_no string 第三方网站唯一订单号,32字符0-9A-Za-z
total_amount long 支付币种数量,注意:所有币种使用8位精度,如1eth则传100000000
settle_currency string 支付币种大写,USDT
passback_params string 公用回传参数, 如果请求时传递了该参数, 则返回给商户时会回传该参数
trade_type string 固定JSAPI、H5
trade_timeout_express int 超时时间,单位秒 固定为600
return_url string 支付成功跳转地址,注意,此处不需要urlencode
响应参数:
参数名 数据类型 是否必须 说明
out_trade_no string 第三方网站唯一订单号
trade_no string 平台订单号(prepay_id)
trade_type string JSAPI、H5
nonce_str string 32位随机数
sign string 返回数据签名

3. H5唤起支付

说明:h5支付页面地址 ,浏览器直接HTTP 302
支付页面:https://XXX/hicoinfe/payment [参考 附录一 ]
请求方式:GET
请求参数:
参数名 数据类型 是否必须 说明
appId String 应用id:8888888888888888 ,16位
timeStamp String 当前的时间戳:1414561699, 32位
nonceStr String 随机字符串,见下方说明
package String 统一下单接口返回的prepay_id参数值,见下方说明
signType String 签名类型,见下方说明
paySign String 签名,见下方说明,(此处签名请使用mch_key)

重点字段说明:

  • nonceStr: 随机字符串,不长于32位。 例如:2K426TILTKCH16CQ25145I8ZNMTM67VS
  • package: 统一下单接口返回的prepay_id参数值, 提交格式如:prepay_id=***:prepay_id=123456789 ,该参数请URLEncoder按utf-8编码, 128位
  • signType: 支持HMAC-SHA256。 注意此处需与统一下单的签名类型一致: HMAC-SHA256, 32位
  • paySign: 详见签名生成算法(附录二)

页面访问示例:

https://api.hicoin.vip/hicoinfe/payment/?appId=4f95ab748e204c65d0bdaa61b4e3f1d7&nonceStr=2K426TILTKCH16CQ25145I8ZNMTM67VS&package=prepay_id%3D1048157710522051678581&signType=HMAC-SHA256&timeStamp=1577105620&paySign=30505B59FC77D4B44C989AA48024DC8F1DF59F533FCEA3BCD832032E94F37819

4. 支付订单查询

说明:用户支付订单查询, 注意此接口需要公共参数
接口地址:/pay/queryOrder
请求方式:POST
请求参数:
参数名 数据类型 是否必须 说明
app_id string 应用ID
access_token string 基础access_token
lang string i18n 语言,固定zh_CN
version string 接口版本固定1.0
charset string 固定utf8
nonce_str string 32位随机数
sign string 参数签名 (此处签名请使用mch_key)
biz_content string 业务请求参数的集合json

biz_content结构体

参数名 数据类型 是否必须 说明
out_trade_no string 第三方网站唯一订单号
响应参数:
参数名 数据类型 是否必须 说明
out_trade_no string 第三方网站唯一订单号
trade_no string 平台订单号(prepay_id)
trade_type string JSAPI或H5
trade_status string 订单状态,说见下方说明
total_amount long 订单币种数量,精度8位
settle_currency string 购买币种:固定为USDT
settle_trans_amount long 平台实际收到币数量,精度8位
subject string 订单标题
body string 订单说明
trade_time string 订单时间
timeout_express string 订单过期时间
openid string 用户openid
nonce_str string 32位随机数
sign string 返回数据签名

重点字段说明:

  • trade_status: NOTPAY (待支付),SUCCESS(已支付), CLOSED(订单过期或关闭) UNKNOW(未知状态)

5. 异步通知支付订单

说明:异步通知支付订单
接口地址:地址由第三方提供
请求方式:POST
请求参数:
参数名 数据类型 是否必须 说明
app_id string 应用app_id
trade_status string 订单状态
trade_no string 平台订单号
out_trade_no string 第三方订单号
openid string 用户openid
trade_type string JSAPI或者H5,与预下单接口中trade_type一致
total_amount string 支付币数量,8位精度
settle_currency string 支付币种
passback_params string 回传参数
body string 订单说明
subject string 订单标题
nonce_str string 32位随机数
sign string 参数签名 (此处签名请使用mch_key)
响应参数:
参数名 数据类型 是否必须 说明
string 输出SUCCESS或FAIL文本