对接文档

SELF25-20261010

一、对接信息

下单网关https://pay.7788.cab/Pay_Index.html
查询网关https://pay.7788.cab/Pay_Trade_query.html
回调出口 IP207.57.126.133
商户号 / 密钥由平台分配(后台「商户」处查看)

二、下单 POST /Pay_Index.html(form)

参数说明
pay_memberid平台分配的商户号
pay_orderid你的订单号(回调和查单原样返回)
pay_applydate北京时间 YYYY-MM-DD HH:mm:ss
pay_bankcode产品编号(见第五节表;微信 8000 起 / 支付宝 9000 起,如 8000 微信收款码 / 8001 微信扫码(Native) / 8002 微信H5 / 8003 微信内支付(JSAPI) / 8006 微信被扫 / 9000 支付宝收款码)。旧写法 wx / ali / wx-qr 等仍兼容
pay_notifyurl异步通知地址
pay_callbackurl同步跳转地址
pay_amount金额(元,两位小数,如 100.00)
pay_productname商品名称
pay_openid微信内支付(JSAPI,8003)必填:付款人在该公众号下的 openid(顾客在微信里打开收银台时,若后台填了公众号 AppSecret 会自动获取,可不传)
pay_buyerid支付宝内支付(JSAPI,9004)必填:付款人的支付宝用户号 buyer_id(2088 开头;顾客在支付宝里打开收银台时会自动走授权获取,可不传)
pay_authcode付款码(被扫,8006 / 9006)可选:顾客「收付款」里的那串数字,传了就同步扣款
pay_ip下单 IP
pay_md5sign见下签名规则

签名:把 pay_amount / pay_applydate / pay_bankcode / pay_callbackurl / pay_memberid / pay_notifyurl / pay_orderid 去空后按字段名字典序拼成 k=v&,末尾加 &key=密钥,取 MD5 大写。
(平台对大小写宽容:大写/小写都能通过;仍请按上面的 MD5 大写实现,免得以后换平台踩坑。)

成功返回:{"status":"1","h5_url":"收银台地址","order_id":"本平台单号","mch_order_id":"你的单号"}

三、查询 POST /Pay_Trade_query.html(form)

参数 pay_memberid / pay_orderid / pay_md5sign(只签这两个字段)。

返回 orderstatus = "1" 表示已支付。

四、异步通知

支付成功后本平台 POST 到你的 pay_notifyurl(form):

字段说明
memberid你的商户号
orderid你下单时的 pay_orderid
amount金额(元)
datetime北京时间
returncode固定 00 表示已支付
transaction_id三方交易号
signMD5 大写(字段清单:amount, datetime, memberid, orderid, returncode, transaction_id)

处理成功后请返回大写 OK,否则本平台将重试。

五、支付产品(pay_bankcode = 产品编号)

下单时 pay_bankcode 填的编号,必须是下表里已开通的「产品编号」,一字不差;编号规则:微信 8000 起、支付宝 9000 起。
多个产品可以同时运营:下表每个产品各自独立开通、各自一份收款设置(收款码 / 凭证 / 官方接口),开几个都行,互不影响。

产品编号名称归属类型运营状态
9000支付宝收款码支付宝收款码(手机监听)未开通
9001支付宝扫码支付支付宝扫码支付(当面付)未开通
9002支付宝H5支付支付宝H5 支付未开通
9003支付宝PC网页支付支付宝PC 网页支付在运营
9004支付宝内支付(JSAPI)支付宝客户端内支付(JSAPI)在运营
9005支付宝APP支付支付宝APP 支付预留(未开通)
9006支付宝付款码(被扫)支付宝付款码(被扫)未开通
6000PayPal 网页收款(跳转)PayPal(贝宝·海外)海外跳转支付(收银台)未开通
6001PayPal 二维码收款PayPal(贝宝·海外)海外跳转支付(收银台)未开通
6002PayPal H5收款PayPal(贝宝·海外)海外跳转支付(收银台)未开通
6003PayPal 手机收款PayPal(贝宝·海外)海外跳转支付(收银台)未开通
7800微信海外 网页收款微信支付(境外 Tenpay Global)海外跳转支付(收银台)未开通
7801微信海外 二维码收款微信支付(境外 Tenpay Global)海外跳转支付(收银台)未开通
7802微信海外 H5收款微信支付(境外 Tenpay Global)海外跳转支付(收银台)未开通
7803微信海外 手机收款微信支付(境外 Tenpay Global)海外跳转支付(收银台)未开通
8000微信收款码微信支付收款码(手机监听)未开通
8001微信扫码支付微信支付扫码支付(Native)在运营
8002微信H5支付微信支付H5 支付未开通
8003微信内支付(JSAPI)微信支付客户端内支付(JSAPI)在运营
8004微信小程序支付微信支付小程序支付在运营
8005微信APP支付微信支付APP 支付预留(未开通)
8006微信付款码(被扫)微信支付付款码(被扫)未开通
9800支付宝海外 网页收款支付宝(境外 Alipay+ / Antom)海外跳转支付(收银台)未开通
9801支付宝海外 二维码收款支付宝(境外 Alipay+ / Antom)海外跳转支付(收银台)未开通
9802支付宝海外 H5收款支付宝(境外 Alipay+ / Antom)海外跳转支付(收银台)未开通
9803支付宝海外 手机收款支付宝(境外 Alipay+ / Antom)海外跳转支付(收银台)未开通

六、常见失败返回(按此自查)

下单 / 查单都是 HTTP 200 + JSON:status="1" 表示受理成功,status="0" 表示被拒(msg 里是原因)。按下面自查,多数问题自己就能定位。

返回原因 / 怎么改
{"status":"0","msg":"不存在的商户编号"}pay_memberid 写错(必须与平台分配给你的一字不差),或该商户已被停用
{"status":"0","msg":"签名校验失败"}签名口径不对。下单只签这 7 个字段:pay_amount / pay_applydate / pay_bankcode / pay_callbackurl / pay_memberid / pay_notifyurl / pay_orderid(去空 → 字段名字典序 → k=v& 拼接 → 末尾 &key=密钥 → MD5 大写)。漏签、多签、拼错顺序、大小写写错都会失败
{"status":"0","msg":"订单号不能为空"}pay_orderid 必填(你自己的订单号,回调与查单都按它原样返回)
{"status":"0","msg":"金额不在允许范围"}pay_amount 传元、最多两位小数(如 100.00),且在本平台允许的金额区间内
{"status":"0","msg":"不存在的产品编号:X"}pay_bankcode 填错 —— 请填第五节表里已开通的编号
{"status":"0","msg":"(其它说明)"}产品已开通但还在配置中(收款码 / 凭证未就绪),平台会说明具体差什么;稍后重试或联系平台
查单 {"status":"0","msg":"订单不存在"}查单只认你下单时提交的 pay_orderid,对不上就查不到