查询支付订单
查询微信或支付宝的支付订单信息,主要用于判断微信或支付宝侧的订单是否已经付款。一般情况下,用户付款后,蜂巢都将支付订单回调给第三方系统。特殊情况下,若第三方系统没有收到回调通知,也可以通过本接口主动进行查询。
一、请求参数
请求URL:
| 参数名 | 类型 | 必须 | 说明 |
|---|---|---|---|
| appid | String | 合作伙伴Id | |
| timestamp | String | 必填 | 时间戳 请求时的时间,unixtime格式 |
| pay_channel | String | 必填 | 支付渠道,微信传入weixin,支付宝传入alipay |
| mch_id | String | 必填 | 微信或支付宝商户号 |
| ext_trade_no | String | 必填 | 开发者之前调用蜂巢支付时,传入的订单号 |
| sign | String | 必填 | 签名,对各参数使用提供的AppSecret进行签名,签名逻辑具体实现见示例代码 |
二、请求示例代码
Java
@Test public void queryPayTrade() throws Exception {
String agentChannel = "weixin"; String mchId = "1618623419"; String extTradeNo = "DD202204151694131519";
Map<String, String> data = new HashMap<String, String>(); data.put("appid", Config.AppId); Long timestamp = System.currentTimeMillis() / 1000; data.put("timestamp", timestamp.toString()); data.put("mch_id", mchId); data.put("ext_trade_no",extTradeNo ); data.put("pay_channel",agentChannel ); data.put("sign", Utils.Sign(data, Config.AppSecret)); String result = doHttpRequest(Config.QueryPayTradeUrl, data); System.out.println(result);
}三、返回结果
如果code不为0,表示发生异常,返回异常结果类似,当然还会有其他异常情况,以code值为准。
{ "code": 11, "message": "获取原始订单出错,请核实订单号ext_trade_no", "trace_id": "" }查询微信订单成功情况:
{ "code": 0, "message": "ok", "data": { "tppay_trade_no": "4200001322202204158870541798", // 微信订单号 "out_trade_no": "DD202204151694131519", // 第三方网站自定义的订单号 "quickpay_trade_no": "20220415191611181878", //蜂巢订单号 "pay_time": "2022-04-15 19:16:32", // 付款时间 "total_fee": 50, // 金额,单位分 "pay_channel": "weixin", // 支付渠道 "pay_user": "oxL-nt_wXbwtIh04tCNZ27T1X57M", //付款主的微信openId "pay_status": "SUCCESS" // 支付成功为SUCCESS,否则FAIL }, "trace_id": "" }查询支付宝订单成功的情况
{ "code": 0, "message": "ok", "data": { "tppay_trade_no": "2022041522001464271428370802",// 支付宝订单号 "out_trade_no": "DD202204152099932560",// 第三方网站自定义的订单号 "quickpay_trade_no": "202204156372794266", //蜂巢订单号 "pay_time": "2022-04-15 22:42:11",// 付款时间 "total_fee": 50, // 金额,单位分 "pay_channel": "alipay",// 支付渠道 "pay_user": "sup***@163.com",//付款方的支付宝账号 "pay_status": "SUCCESS" // 支付成功为SUCCESS,否则FAIL }, "trace_id": "" }说明: code为0表示成功,非0为失败,message会包含失败原因。 订单实际支付成功以pay_status为准。