銀聯重合支払

4732 ワード

銀聯の集約支払いを開発するには、会社と銀聯がビジネス協力を必要とし、銀聯が支払いのドッキングドキュメントを提供しなければならない.
本人参考のドキュメント:銀聯ビジネス公衆番号+サービスウィンドウ支払いアクセスインタフェース規範V 2.6.docx
コアコードクリップ
UnPayRes.java
package com.pay.unionpay.res;

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

import com.pay.unionpay.util.SignUtil;
import com.pay.unionpay.util.UnPayConst;

/**
 *       
 * 
 * @author libaibai
 * @version 1.0 
 */
public class UnPayRes {

	private String msgSrc; //     
	private String requestTimestamp; //       ,  yyyy-MM-dd HH:mm:ss
	private String merOrderId; //      
	private String mid; //    
	private String tid; //    

	private String goods; //     
	private String instMid = UnPayConst.INSTMID; //     
	private int totalAmount; //     ,   
	private String notifyUrl = UnPayConst.NOTIFYURL; //       
//	private String returnUrl; //       

	private String sign; //   

	public UnPayRes() {
	}

	public UnPayRes(String msgSrc, String requestTimestamp, String merOrderId, String mid,
			String tid, int totalAmount, String goods, String key) {
		this.msgSrc = msgSrc;
		this.requestTimestamp = requestTimestamp;
		this.merOrderId = merOrderId;
		this.mid = mid;
		this.tid = tid;
		this.totalAmount = totalAmount;
		this.goods = goods;
		this.sign = SignUtil.getSign(toMap(), key);
	}

	public String getMsgSrc() {
		return msgSrc;
	}

	public String getRequestTimestamp() {
		return requestTimestamp;
	}

	public String getMerOrderId() {
		return merOrderId;
	}

	public String getMid() {
		return mid;
	}

	public String getTid() {
		return tid;
	}

	public String getInstMid() {
		return instMid;
	}

	public int getTotalAmount() {
		return totalAmount;
	}

	public String getNotifyUrl() {
		return notifyUrl;
	}

	public String getSign() {
		return sign;
	}

	public void setMsgSrc(String msgSrc) {
		this.msgSrc = msgSrc;
	}

	public void setRequestTimestamp(String requestTimestamp) {
		this.requestTimestamp = requestTimestamp;
	}

	public void setMerOrderId(String merOrderId) {
		this.merOrderId = merOrderId;
	}

	public void setMid(String mid) {
		this.mid = mid;
	}

	public void setTid(String tid) {
		this.tid = tid;
	}

	public void setInstMid(String instMid) {
		this.instMid = instMid;
	}

	public void setTotalAmount(int totalAmount) {
		this.totalAmount = totalAmount;
	}

	public void setNotifyUrl(String notifyUrl) {
		this.notifyUrl = notifyUrl;
	}

	public void setSign(String sign) {
		this.sign = sign;
	}

	public String getGoods() {
		return goods;
	}

	public void setGoods(String goods) {
		this.goods = goods;
	}

	public Map toMap() {
		Map map = new HashMap();
		Field[] fields = this.getClass().getDeclaredFields();
		for (Field field : fields) {
			Object obj;
			try {
				obj = field.get(this);
				if (obj != null) {
					map.put(field.getName(), obj);
				}
			} catch (IllegalArgumentException e) {
			} catch (IllegalAccessException e) {
			}
		}
		return map;
	}

	@Override
	public String toString() {
		return "msgSrc=" + msgSrc + "&requestTimestamp=" + requestTimestamp + "&merOrderId="
				+ merOrderId + "&mid=" + mid + "&tid=" + tid + "&instMid=" + instMid + "&goods="
				+ goods + "&totalAmount=" + totalAmount + "&notifyUrl=" + notifyUrl + "&sign=" + sign;
	}
}

 
		//       url
		UnPayRes unpayRes = new UnPayRes(UnPayConst.MSGSRC, requestTimestamp, merOrderId, mid, tid, totalAmount, body, 
				UnPayConst.KEY);

		// UnPayService unPayService = JAXRSClientFactory.create(UnPayConst.URL,
		// UnPayService.class);
		// String returnStr = null;
		// try {
		// Response response = unPayService.pay(unpayRes);
		// returnStr = response.readEntity(String.class);
		// } catch (Exception e) {
		// LOG.error("unpayOrder-        ", e);
		// }
		String unPayUrl = UnPayConst.URL + "?" + unpayRes.toString();
		LOG.info("unpayOrder-    unPayUrl=" + unPayUrl);

		returnMap.put("isPay", "1");
		returnMap.put("unPayUrl", unPayUrl);

 
	//     ID,    ,      
	public static final String MSGSRC = "WWW.xx.COM";
	public static final String MSGID = "4675";

	//      
	public static final String INSTMID = "xxxx";

	//     
	public static final String KEY = "xxxx";

	//     
	//     
	// public static final String URL = "https://qr-test2.chinaums.com/netpay-portal/webpay/pay.do";
	//     
	public static final String URL = "https://qr.chinaums.com/netpay-portal/webpay/pay.do";//