1.支付宝的订单查询

 /*** 支付宝订单查询接口* 2019-08-13* @param orderId 我们系统的订单号* @return Map: status:0 支付成功 1:失败*/public static Map alipayCreateOrderQuery(String orderId) {Map map = new LinkedHashMap();//产生的订单字符串String orderStatus = "";//实例化客户端(参数:网关地址、商户appid、商户私钥、格式、编码、支付宝公钥、加密类型)AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig. aliPayUrl,AlipayConfig.appId, AlipayConfig.developerSpoon,"json", AlipayConfig.input_charset, AlipayConfig.aliPaySpoon, "RSA2");AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();AlipayTradeQueryModel model= new AlipayTradeQueryModel();model.setOutTradeNo(orderId);//商户网站唯一订单号,请保证OutTradeNo值每次保证唯一
        request.setBizModel(model);AlipayTradeQueryResponse response = null;try {response = alipayClient.execute(request);System.out.println(JSONObject.fromObject(response).toString());Map queryMap=JSONObject.fromObject(response);/*System.out.println("code="+queryMap.get("code"));System.out.println("tradeNo="+queryMap.get("tradeNo"));System.out.println("outTradeNo="+queryMap.get("outTradeNo"));System.out.println("tradeStatus="+queryMap.get("tradeStatus"));System.out.println("totalAmount="+queryMap.get("totalAmount"));*//*交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款)*/map.put("tradeStatus",queryMap.get("tradeStatus"));map.put("totalAmount",queryMap.get("totalAmount"));map.put("outTradeNo",queryMap.get("outTradeNo"));map.put("tradeNo",queryMap.get("tradeNo"));map.put("code",queryMap.get("code"));map.put("subMsg",queryMap.get("subMsg"));map.put("success",queryMap.get("success"));orderStatus=queryMap.get("tradeStatus").toString();} catch (AlipayApiException e) {String massage = "alipay.trade.query接口:订单签名错误";System.out.println(massage);}if (response.isSuccess()) {if (orderStatus.equals("TRADE_SUCCESS")){map.put("status", 0);//订单支付成功  status:0 成功 1:失败logger.info("支付宝:支付订单支付结果查询:订单out_trade_no----"+orderId+"---支付成功!");}else{map.put("status",1);//订单支付成功  status:0 成功 1:失败logger.info("支付宝:支付订单支付结果查询:订单out_trade_no----"+orderId+"---支付失败!"+map.get("subMsg"));}} else {logger.info("支付宝:支付订单支付结果查询:订单out_trade_no----"+orderId+"---支付失败!");map.put("status",1);//订单支付成功  status:0 成功 1:失败
        }return map;}

2.微信的订单结果查询:

  /*** 查询微信订单信息* 20190813* 场景:刷卡支付、公共号支付、扫码支付、APP支付* @param order_no 外部商家的唯一订单号* @return Map: status:0 支付成功 1:支付失败 2:通信错误 3:未知错误*/public static Map orderQuery(String order_no) {//订单查询结果存放地点Map map = new LinkedHashMap();LinkedHashMap<String, Object> params = new LinkedHashMap<String, Object>();String noncStr = WebUtil.genNonceStr();//随机字符串params.put("appid", WeixinPay.APPID);params.put("&mch_id", WeixinPay.MCH_ID);params.put("&nonce_str", noncStr);params.put("&out_trade_no", order_no);//商户订单号//添加密钥keyparams.put("&key", WeixinPay.api_sec);//生成签名String sign = WeixinPay.generateSign(params);//System.out.println("sign==" + sign);//组装查询订单接口需要的xml文件StringBuilder sb = new StringBuilder();sb.append("<xml>");sb.append("<appid>" + WeixinPay.APPID + "</appid>");//公众账号IDsb.append("<mch_id>" + WeixinPay.MCH_ID + "</mch_id>");//商户号sb.append("<nonce_str>" + noncStr + "</nonce_str>");sb.append("<out_trade_no>" + order_no + "</out_trade_no>");sb.append("<sign>" + sign + "</sign>");sb.append("</xml>");System.out.println("微信查询订单接口请求:" + sb);//调用微信的查询订单接口String result = HttpUitl.postXML(WeixinPay.query_order, sb.toString());System.out.println("微信查询订单接口返回数据:" + result);LOG.info("订单查询返回结果:" + result);//将结果转成可以获取的ElementElement root = WebUtil.getXmlRoot(result);//微信返回状态码 return_code  此字段是通信标识,非交易标识,交易是否成功需要查看trade_state来判断String return_code = root.element("return_code").getTextTrim();String return_msg = root.element("return_msg").getTextTrim();System.out.println("微信返回状态码:return_code: " + return_code);if (!WebUtil.checkEmpty(return_code) && return_code.equals("SUCCESS")) {//result_code 业务结果 有可能是失败或者成功String result_code = root.element("result_code").getTextTrim();if (!WebUtil.checkEmpty(result_code) && result_code.equals("SUCCESS")) {/*** 交易状态 trade_state:SUCCESS—支付成功   REFUND—转入退款   NOTPAY—未支付* CLOSED—已关闭  REVOKED—已撤销(付款码支付)  USERPAYING--用户支付中(付款码支付)  PAYERROR--支付失败(其他原因,如银行返回失败)*/String trade_state = root.element("trade_state").getTextTrim();  //交易状态System.out.println("支付结果:" + trade_state);if (trade_state.equals("SUCCESS")) {System.out.println("支付成功:" + trade_state);map.put("status", 0);//订单支付成功  status:0 支付成功 1:支付失败 2:接口通信失败map.put("returnMsg", return_msg);map.put("result_code", result_code);//业务结果map.put("trade_state", trade_state);//支付状态map.put("trade_state_desc", root.element("trade_state_desc").getTextTrim());//支付结果描述LOG.info("微信查询订单接口通信支付成功:" + order_no + "===" + trade_state + "==" + root.element("trade_state_desc").getTextTrim());return map;} else {map.put("status", 1);//订单支付成功  status:0 支付成功 1:支付失败 2:接口通信失败map.put("returnMsg", return_msg);map.put("result_code", result_code);//业务结果map.put("trade_state", trade_state);//支付状态map.put("trade_state_desc", root.element("trade_state_desc").getTextTrim());//支付结果描述LOG.info("微信查询订单接口通信支付失败:" + order_no + "===" + trade_state + "==" + root.element("trade_state_desc").getTextTrim());System.out.println(root.element("trade_state_desc").getTextTrim() + ":" + trade_state);return map;}} else {//业务失败String err_code = root.element("err_code").getTextTrim();//错误代码String err_code_des = root.element("err_code_des").getTextTrim();//错误代码描述System.out.println("业务结果:" + result_code);System.out.println("错误代码:" + err_code);System.out.println("错误代码描述:" + err_code_des);map.put("status", 1);//订单支付成功  status:0 支付成功 1:支付失败 2:接口通信失败map.put("returnMsg", return_msg);map.put("result_code", result_code);//业务结果map.put("err_code", err_code);//错误代码map.put("err_code_des", err_code_des);//错误代码描述:return map;}} else if (!WebUtil.checkEmpty(return_code) && return_code.equals("FAIL")) {LOG.info("微信查询订单接口通信失败:" + return_msg);map.put("status", 2);//订单支付成功  status:0 支付成功 1:支付失败 2:接口通信失败map.put("returnMsg", return_msg);return map;} else {map.put("status", 3);//订单支付成功  status:0 支付成功 1:支付失败 2:接口通信失败map.put("returnMsg", "未知错误");return map;}}

注意微信的返回的格式有几种:

  /*orderQuery("12333354");//手机微信支付 未支付orderQuery("12335769");//成功支付手机微信支付orderQuery("12198362");//H5微信支付*//***   取消订单*     "return_code":"SUCCESS",*     "return_msg":"OK",*     "appid":"wxa1261e22bf0e9094",*     "mch_id":"1490693182",*     "nonce_str":"nGm8i4qKwM9RDnMG",*     "sign":"DEF82798EC4A27B2B272DE72F90D4949",*     "result_code":"FAIL",*     "err_code":"ORDERNOTEXIST",*     "err_code_des":"订单不存在"*//****  订单未支付* <xml>* <return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg>* <appid><![CDATA[wxa1261e22bf0e9094]]></appid><mch_id><![CDATA[1490693182]]></mch_id>* <device_info><![CDATA[]]></device_info>* <nonce_str><![CDATA[DkYcSIPJ4bxqHWdL]]></nonce_str>* <sign><![CDATA[E4E638E10110B80B7023EDB71AD16CC6]]></sign>* <result_code><![CDATA[SUCCESS]]></result_code>* <total_fee>100</total_fee><out_trade_no><![CDATA[12333354]]></out_trade_no>* <trade_state><![CDATA[NOTPAY]]></trade_state>* <trade_state_desc><![CDATA[订单未支付]]></trade_state_desc>* </xml>* {*     "return_code":"SUCCESS",*     "return_msg":"OK",*     "appid":"wxa1261e22bf0e9094",*     "mch_id":"1490693182",*     "device_info":"",*     "nonce_str":"DkYcSIPJ4bxqHWdL",*     "sign":"E4E638E10110B80B7023EDB71AD16CC6",*     "result_code":"SUCCESS",*     "total_fee":"100",*     "out_trade_no":"12333354",*     "trade_state":"NOTPAY",*     "trade_state_desc":"订单未支付"* }*//*****  订单支付成功**  <xml>*   <return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg>*  <appid><![CDATA[wxa1261e22bf0e9094]]></appid><mch_id><![CDATA[1490693182]]></mch_id>*  <nonce_str><![CDATA[H61dzJmI0YUk4QmF]]></nonce_str>*  <sign><![CDATA[273C5CBF28C69823454049A4FE55F88E]]></sign>*  <result_code><![CDATA[SUCCESS]]></result_code><openid><![CDATA[ovo1y1Ge0OFaFHi__BfYlNTKh3v4]]></openid>*  <is_subscribe><![CDATA[N]]></is_subscribe><trade_type><![CDATA[APP]]></trade_type>*  <bank_type><![CDATA[CFT]]></bank_type><total_fee>1</total_fee><fee_type><![CDATA[CNY]]></fee_type>*  <transaction_id><![CDATA[4200000387201908095282847008]]></transaction_id>*  <out_trade_no><![CDATA[12335769]]></out_trade_no><attach><![CDATA[]]></attach>*  <time_end><![CDATA[20190809174000]]></time_end>*  <trade_state><![CDATA[SUCCESS]]></trade_state>*  <cash_fee>1</cash_fee>*  <trade_state_desc><![CDATA[支付成功]]></trade_state_desc>*  </xml>*{"return_code":"SUCCESS","return_msg":"OK","appid":"wxa1261e22bf0e9094","mch_id":"1490693182","nonce_str":"H61dzJmI0YUk4QmF","sign":"273C5CBF28C69823454049A4FE55F88E","result_code":"SUCCESS","openid":"ovo1y1Ge0OFaFHi__BfYlNTKh3v4","is_subscribe":"N","trade_type":"APP","bank_type":"CFT","total_fee":"1","fee_type":"CNY","transaction_id":"4200000387201908095282847008","out_trade_no":"12335769","attach":"","time_end":"20190809174000","trade_state":"SUCCESS","cash_fee":"1","trade_state_desc":"支付成功"}**/

转载于:https://www.cnblogs.com/wyf-love-dch/p/11344898.html

写一个微信和支付宝订单的查询方法:相关推荐

  1. 手把手教你写一个微信小程序日历组件

    今天我们一起写一个微信小程序日历组件 微信小程序日历组件 github.com/749264345/w- 好,我们先看一下要实现的模样,如下图 由以上截图我们可以看到 1.日历可以通过按钮[切换展示效 ...

  2. 我在写一个微信墙(一)

    早就想写一个微信墙了,毕竟这玩意儿很好用嘛. 一直计划计划计划了一个学期,结果一事无成.有一次跟廖总聊天时候还说,赶紧积累点东西吧,大三了,再不做点什么就真的一事无成一无所有毕业以后废人一个. 写一个 ...

  3. [js] 写一个获取页面中所有checkbox的方法

    [js] 写一个获取页面中所有checkbox的方法 function getAllCheckbox() {return [...document.querySelectorAll('input[ty ...

  4. 微信小程序+PHP 从零写一个微信小程序

    微信小程序是越来越火,参与其中的开发者也越来越多,但是很多朋友都是只懂小程序前端开发,或者是只懂 PHP 开发,本 Chat 就是想让这部分人能够自己一个人把前后端串起来,做一个专属自己的微信小程序. ...

  5. 写一个微信小程序,加拿大移民分数计算器

    如果你想写一个加拿大移民分数计算器的微信小程序,你需要遵循以下步骤: 首先,你需要了解如何使用微信小程序开发工具,包括如何创建小程序项目.如何编写代码和如何调试小程序. 然后,你需要了解加拿大移民分数 ...

  6. 动手写一个微信聊天页,有文字,有语音,有图片

    今天给大家分享用网页实现移动端微信聊天记录的功能,效果图如下: 页面布局中,聊天框使用flex布局,聊天气泡通过伪元素实现(前面文章有记录如何实现一个微信聊天气泡框) 语音播放时写的一个css动画,通 ...

  7. python wx包_今天玩点啥:python真香系列之利用wxpy包写一个微信消息自动回复插件...

    阅读本文假设你本地已经安装了Python3基础环境. 安装wxpy模块: pip3 install wxpy 添加以下代码即可实现扫码登录 # 导入模块 from wxpy import * # 初始 ...

  8. 下面属于python内置对象的有哪些_python练习题-写一个函数,打印所有包含copy方法的内置对象...

    代码: #encoding=utf-8 for i in dir(__builtins__): #print "i:",i try: #这里的i是个字符串,并不能直接用dir(i) ...

  9. 教你如何自己写一个微信小游戏「跳一跳」外挂

    [回复"1024",送你一个特别推送] 其实也不能说算是外挂吧,算是个游戏小助手吧,毕竟不能抓包,也不能直接修改分数(据说之前可以直接抓包修改分数,不过这漏洞已经被微信官方修复), ...

  10. 用Python写一个微信防撤回神器

    手写辛苦,希望给赞 #!/usr/local/bin/python3 # coding=utf-8import os import re import time import _thread impo ...

最新文章

  1. 2022-2028年中国电商物流行业投资分析及前景预测报告
  2. 2022-2028年中国半导体用环氧塑封料(EMC)行业市场全景调查及投资前景分析报告
  3. ccs怎么把2个变量都在一个graph中显示_因果推理实战(2)——利用Tetrad进行因果分析...
  4. OpenStack Nova Placement API 统一资源管理接口的未来
  5. HTTPS通信的C++实现
  6. nginx 获取header 请求参数_Nginx设置Header头信息
  7. 一次java导出pdf的经历
  8. python中multiply函数_python中numpy库内multiply()、dot()和 * 三种乘法运算的区别小计...
  9. [转载] python 函数返回多个值
  10. Python 爬取揭秘,你的考研调剂对手就有谁?
  11. 17秋 软件工程 团队第三次作业 预则立他山之石
  12. NYOJ 371 机器人II
  13. mysql数据库密码怎么修改_MySQL数据库密码如何修改?
  14. Debian 系统找不到基本命令的解决方法
  15. 利用GitHub搭建个人网站
  16. Python GDAL矢量转栅格详解
  17. R 语言绘制带组的圆形条形图
  18. Python开发 之 Python3读写Excel文件(较全)
  19. envoy网络安全opa等
  20. Chrome,Firefox浏览器驱动下载地址

热门文章

  1. GAMES101 Transformation Cont.
  2. python语法学习第三天--列表
  3. golang xorm cmd xorm工具使用 reverse 反转一个数据库结构,生成代码
  4. Ubuntu 15.04 或更新版 更新源/Ubuntu 15.04 Vivid Vervet更新源已可用
  5. Git命令之查看及设置用户名邮箱
  6. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_24-页面预览-页面预览测试
  7. 优秀架构师是怎么炼成的?
  8. linux 单机跨进程通信
  9. 第七讲 数组动手动脑和课后作业
  10. 支持向量机很全的代码和数据集