微信支付后 对账管理

本文档主要介绍微信支付的对账接口调用方法,包括商户号和秘钥的获取,以及接口查询限制。对账逻辑因公司需求各异,但微信对账接口只能查询昨日及之前订单,建议在每天7点后进行。同时,文中提及支付宝对账接口返回数据为分页形式。
摘要由CSDN通过智能技术生成

现在微信支付也有一定的用户量所以现在为大家提供一个微信支付的对账文档和方法

对账逻辑这个因公司的需求不一样而不同,所以这里我们只介绍微信对账的接口调用和返回数据



1:微信对账接口分析

微信支付实际上是调用财付通的支付接口进行支付的

首先你要的知道你的商户号和秘钥

对账接口查询的只能查询昨天和昨天以前的订单信息 并且如果想下载昨天订单要在今天的7点之后进行


java代码如下:

public   List<WechatBean> getWechatBeanList(String time)  {
		try{
			
			List<WechatBean> list = new ArrayList<WechatBean>();
			//创建分账请求对象
			DownloadBillRequestHandler reqHandler = new DownloadBillRequestHandler(null, null);
			//通信对象
			TenpayHttpClient httpClient = new TenpayHttpClient();
			//-----------------------------
			//设置请求参数
			//-----------------------------
			reqHandler.init();
			reqHandler.setKey(key);
			reqHandler.setGateUrl("http://mch.tenpay.com/cgi-bin/mchdown_real_new.cgi");
			//-----------------------------
			//设置接口参数
			//-----------------------------
			String timestamp = Long.toString(System.currentTimeMillis()/1000);
			reqHandler.setParameter("spid", bargainor_id);	
			reqHandler.setParameter("trans_time", time);
			reqHandler.setParameter("stamp", timestamp);
			reqHandler.setParameter("cft_signtype", "0");
			reqHandler.setParameter("mchtype", "1");
			//设置请求内容
			httpClient.setReqContent(reqHandler.getRequestURL());
			System.out.println(reqHandler.getRequestURL());
	//		out.println(reqHandler.getRequestURL());
			//设置发送类型 GET
			httpClient.setMethod("POST");
			//后台调用
			if(httpClient.call()) {
				String resContent = httpClient.getResContent();
				System.out.println("-------------------------");
				System.out.println(resContent);
				System.out.println("-------------------------");
				logger.info("[流水#"+loggerTrace+"][获取微信支付对账信息#成功][数据#"+JsonUtil.convertObject2Json(resContent)+"]");
				String [] resContentStr = resContent.split("\\r?\\n");
				if(resContentStr[0].equals("<html>")){
					logger.info("[流水#"+loggerTrace+"][当天没有微信支付记录]");
					return null;
				}
				for(int i = 1 ;i<resContentStr.length;i++ ){
					if(i>= resContentStr.length - 3){
						break;
					}
					if(!resContentStr[i].equals("")){
						String [] values = resContentStr[i].split(",");
						WechatBean bean = new WechatBean();
						bean.setPaySuccrssDate(values[0]);
						bean.setCaiFuTongTraceNo(values[1]);
						bean.setPayTraceNo(values[2].substring(2, values[2].length()));
						bean.setPayType(values[3]);
						bean.setBankTraceNo(values[4]);
						double amount = Double.valueOf(values[5]);
						int finalAmount = (int)amount*100;
						bean.setAmount(finalAmount);
						bean.setStatus(values[6]);
						bean.setMome(values[7]);
						list.add(bean);
					}
				}
				return list;
			} else {
				logger.info("[流水#"+loggerTrace+"][微信支付对账#后台调用通信失败[数据#"+JsonUtil.convertObject2Json(httpClient.getResponseCode()+httpClient.getErrInfo())+"]");
				System.out.println("后台调用通信失败");
				System.out.println(httpClient.getResponseCode());
				System.out.println(httpClient.getErrInfo());
				//有可能因为网络原因,请求已经处理,但未收到应答。
				return null;
			}
		}catch(Exception e){
			e.printStackTrace();
			logger.info("[流水#"+loggerTrace+"][微信支付对账#异常】[数据#"+JsonUtil.convertObject2Json(e)+"]");
			return null;
		}
	}
随带也说一下支付宝对账接口吧

支付宝对账接口中返回给你的是分页的信息

根据查询的页码和一页大小给你返回信息

/*
	 *获取支付宝分页对账返回xml 
	 */
	
	public static String getAilpayQueryPageLog(Object[]values,String pageNo){
		Map<String, String> sParaTemp = new HashMap<String, String>();
		sParaTemp.put("service", "account.page.query"
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值