查询支付宝单笔交易
根据支付宝的交易号查询本笔交易信息, 需要淘宝卖家授权。
接口地址:
| 参数名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| appid | String | 开发者AppId | 开放平台提供 |
| tb_seller_nick | String | 要查询的商家, 淘宝卖家店铺登录账号,非店铺名称 | kingdo |
| timestamp | long | 当前时间戳,开发者的接口请求和开放平台的时间差在5分钟之内。 | |
| sign | string | 接口签名 ,对请求参数进行签名,签名算法可参考附件示例代码 | |
| alipay_order_no | string | 支付宝交易号 | 比如 20200214200040011100270047861221 |
请求示例
String result =""; String tb_seller_nick = Config.TBSellerNick ; //要查询支付宝的淘宝商家 String alipay_order_no = "2020070622001413231427949559"; // 支付宝交易订单号 CloseableHttpClient httpclient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost( Config.AliPayTradeDetailUrl );
//业务参数 Map<String, String> data = new HashMap<String, String>(); data.put("appid", Config.AppId); data.put("tb_seller_nick", tb_seller_nick); data.put("alipay_order_no", alipay_order_no);// SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Long timestamp = System.currentTimeMillis() / 1000; data.put("timestamp", timestamp.toString());
//发起POST请求 try { //参数签名 data.put("sign", Utils.Sign(data,Config.AppSecret)); List<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>(); for (Map.Entry<String, String> entry : data.entrySet()) { params.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); } httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); HttpResponse httpResponse = httpclient.execute(httpPost); if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { result = EntityUtils.toString(httpResponse.getEntity()); } else { result = ("doPost Error Response: " + httpResponse.getStatusLine().toString()); } } catch (Exception e) { e.printStackTrace();
}
System.out.println(result);返回示例
{ "code": 0, "message": "ok", "data": { "trade_record": { "alipay_order_no": "20200214200040011100270047861221", "create_time": "2020-02-14 00:12:52", "in_out_type": "in", "modified_time": "2020-02-14 00:12:58", "opposite_logon_id": "sup*@163.com", "opposite_user_id": "2088002269364279", "order_from": "ALIPAY", "order_status": "TRANSFER_WITHDRAW_SUCCESS", "order_title": "王者荣耀款", "order_type": "_OTHERS", "owner_name": "*享清", "owner_user_id": "2088502785989744", "service_charge": "0.00", "total_amount": "2.88" } }}其中,code为0表示成功,非0为失败,失败时,message中会有失败信息。 in_out_type表示收入和支出, opposite_logon_id对方的支付宝号,owner_name为本人的真名。 order_status: OTHERS(比如花呗还款等) 、TRADEFINISHED(交易成功)、TRANSFER_APPLY_WITHDARW_SUCCESS(提现成功)、TRANSFER_WITHDRAW_SUCCESS(转账成功)、TRANSFER_INITIAL(待付款) order_title:商品标题或是交易备注, 比如”主动还款-花呗2020年03月账单” 、”RDS费用”、普通提现等。