公众号支付API
业务功能
公众号支付是用户在微信中打开商户的H5页面,商户在H5页面通过调用微信支付提供的JSAPI接口调起微信支付模块完成支付。应用场景有:
1)用户在微信公众账号内进入商家公众号,打开某个主页面,完成支付
2)用户的好友在朋友圈、聊天窗口等分享商家页面连接,用户点击链接打开商家页面,完成支付
3)将商户页面转换成二维码,用户扫描二维码后在微信浏览器中打开页面后完成支付
测试url:
http://47.95.131.62:8080/api/v1/pay/wx/jsapipay
请求参数(O-非必传 ,M-必传):
参数 | 参数名称 | 类型 | 参数说明 | 样例 | 可空 |
---|---|---|---|---|---|
merch_no | 商户编号 | String | 商户在SaaS平台的编号 | a10253390 | M |
channel_no | 微信渠道号 | String | 服务商通过海科在微信申请的渠道编号 | O | |
channel_merch_no | 渠道商户编号 | String | 商户在微信申请的编号 | O | |
out_trade_no | 服务商交易订单号 | String | 服务商的交易订单编号(同一服务商下唯一) | 161018121614000624679888 | M |
total_amount | 订单金额 | String | 订单总金额,以元为单位 | 100 | M |
ledger_type | 分账类型 | String | 不传默认不分账 REALTIME_SETTLE:实时分账 DELAY_SETTLE:延时分账 |
如果上送此字段,需要保证服务商分账业务已开通,否则不允许交易 | O |
ledger_relation | 分账交易关系组 | JSONArray | 分账交易关系组(v1.18增加) | 如果上送此字段,需要保证服务商分账业务已开通,否则不允许交易 | O |
appid | 微信支付的appid | String | 微信支付的appid | M | |
openid | 微信支付的用户openid | String | 微信支付的用户openid | M | |
notify_url | 通知地址 | String | 支付成功后的通知地址 | http://test.mdun.cn/jd/pay/notice | O |
sn | 厂商终端号 | String | (v1.05增加) | O | |
pn | SAAS终端号 | String | SAAS终端号 | 若使用海科商户后台或绑定海科语音设备则上送pn值,pn值通过终端绑定接口获得 | O |
remark | 交易备注 | String | (v1.05增加) | O | |
limit_pay | 限制贷记卡支付 | String | (v1.19增加) 0:不限制贷记卡支付 1:禁止使用贷记卡支付。 不上送此参数时,limit_pay默认为0,即:不限制贷记卡支付 |
O | |
subsidy_info | 手续费补贴信息 | JSON | 1、需要保证服务商补贴业务已开通,否则不允许交易 2、手续费补贴费率、手续费执行费率和手续费补贴金额三选一进行上送 |
O | |
goods_name | 商品名称 | String | 商品名称 | 矿泉水 | O |
terminal_info | 终端信息 | object | 【259新增】商户侧受理终端信息,字段详 细说明参考下文。 | O | |
scene_info | 场景信息 | object | 该字段用于上报场景信息,目前支持上报实际门店信息。该字段为 JSON 对象数据,对象格式为{"store_info":{"id":"门店 ID","name": "名称","area_code": " 编 码","address": " 地 址" }} | {"store_info":{"id":"门店 ID","name": "名称","area_code": " 编 码","address": " 地 址" }} | O |
补贴信息subsidy_info 字段说明
参数 | 参数名称 | 类型 | 参数说明 | 样例 | 可空 |
---|---|---|---|---|---|
fee_subsidy_agent_no | 手续费补贴代理商编号 | Sting | 1、涉及到多营销主体补贴时该字段必填。2、运营提供手续费补贴代理商编号 | C | |
fee_subsidy_party | 手续费补贴方账户 | String | 1、手续费补贴方联系商务或者运营获取 | M | |
fee_subsidy_rate | 手续费补贴费率 | String | 1、手续费补贴费率、手续费执行费率和手续费补贴金额三选一进行上送 2、手续费补贴费率不能大于(可以等于)商户该笔交易手续费费率 3、费率单位:费率值0.38%,则上送0.38 |
C | |
fee_execute_rate | 手续费执行费率 | String | 1、手续费补贴费率、手续费执行费率和手续费补贴金额三选一进行上送 2、手续费执行费率只能小于(不可以等于)商户该笔交易手续费费率 3、商户该笔交易费率减去手续费执行费率就是该笔交易补贴费率 4、费率单位:费率值0.38%,则上送0.38 |
C | |
fee_subsidy_amount | 手续费补贴金额 | String | 1、手续费补贴费率、手续费执行费率和手续费补贴金额三选一进行上送 2、手续费补贴金额不能大于手续费金额(可以等于手续费金额) 3、传递补贴手续费金额大于该笔手续费金额,按照该笔交易实际手续费金额补贴 4、金额以元为单位:1.5元,则上送1.5 |
C |
分账关系组:ledger_relation
参数 | 参数名称 | 类型 | 参数说明 | 样例 | 可空 |
---|---|---|---|---|---|
receive_no | 收账方(海科商户号) | String | 收账方(海科商户号)ledger_relation组内参数 | M | |
amt | 分账金额 | String | 分账金额(单位:元) | 20 | M |
终端信息terminal_info 字段说明
参数 | 参数名称 | 类型 | 参数说明 | 样例 | 可空 |
---|---|---|---|---|---|
location | 终端实时经纬度信息 | String | 受理终端设备实时经纬度信息,格式为纬度/经度, +表示北纬、东经,-表示南纬、西经 | +37.12/-121.213 | O |
device_ip | 商户端设备 IP | String | 商户端终端设备 IP 地址、 | O | |
encrypt_rand_num | 加密随机因子 | String(10) | 仅在被扫支付类交易报文中出现:若付款码为 19 位数字,则取后6 位;若付款码为 EMV二维码,则取其tag 57 的卡号/token 号的后 6 位 | O | |
secret_text | 密文数据 | String(16) | 仅在被扫支付类交易报文中出现:64bit 的密文数据, 对终端硬件序列号和加密随机因子加密后的结果。本子域取值为: 64bit 密文数据进行base64 编码后的结果。 | O | |
app_version | 应用程序版本号 | String(8) | 终端应用程序的版本号。应用程序变更应保证版本号不重复。当长度不足时,右补空格 | O |
请求示例:
{
"accessid": "cpostest",
"merch_no": "833102054620187",
"out_trade_no": "20200324164520529",
"total_amount": "80",
"notify_url": "http://47.95.131.62:8080/saas/trade/success/notice/test",
"sn": "1959CA887758",
"pn": "M0000007",
"remark": "地方都是",
"limit_pay": "0",
"ledger_relation": [
{
"receive_no": "833102054620184",
"amt": "10"
}
],
"goods_name": "矿泉水",
"sign": "3035E10CA300616F67B73A17250133C7"
}
返回参数:
参数 | 参数名称 | 类型 | 参数说明 | 样例 | 可空 |
---|---|---|---|---|---|
out_trade_no | 服务商交易订单号 | String | 服务商的交易订单编号 | 161018121614000624679888 | M |
trade_no | 交易订单号 | String | SaaS平台的交易订单编号 | M | |
channel_trade_no | 凭证条码订单号 | String | 凭证条码订单号(v1.24增加) | 161018121614000624679888 | M |
appid | 微信支付的appid | String | 微信支付的appid | O | |
timestamp | 交易时间戳 | String | O | ||
noncestr | 随机字符串 | String | O | ||
package | 订单详情扩展字符串 | String | 统一下单接口返回的 prepay_id 参数 值 | prepay_id=123456789 | O |
signtype | 签名方式 | String | RSA | O | |
paysign | 签名 | String | C380BEC2BFD727A4B6845133519F3AD6 | O |
文档更新时间: 2025-02-11 10:28 作者:admin