QrDemo.java 3.9 KB
package com.sunyo.energy.location.demopay;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.sunyo.energy.location.model.WaterMeter;
import net.sf.json.JSONObject;
import net.sf.json.util.JSONUtils;
import springfox.documentation.spring.web.json.Json;

public class QrDemo {


        public static String orUrl(String orderId, String payMent) throws UnsupportedEncodingException {
                String bankURL="https://ibsbjstar.ccb.com.cn/CCBIS/ccbMain";
                /**
                 * 商户代码
                 */
                String MERCHANTID = "105000045820502";
//                String MERCHANTID = "105001453995827";
                /**
                 * 商户柜台代码
                 */
                String POSID = "049347762";
//                String POSID = "031575220";
                /**
                 * 分行代码
                 */
//                String BRANCHID = "410803805";
                String BRANCHID = "410000000";
                /**
                 * 货币种类   01 人民币 只支持人民币
                 */
                String CURCODE="01";
                /**
                 * 交易码
                 */
                String TXCODE = "530550";
                String REMARK1 = "";
                String REMARK2 = "";
                /**
                 * 返回类型
                 */
                String RETURNTYPE="3";
                String TIMEOUT = "";
                /**
                 * 应柜台的公钥后30位
                 */
                String PUB32TR2= "57b3055539f4925efaf9dacb020111";
//                String PUB32TR2= "8578d1cd9340dba556126a71020111";

                StringBuffer tmp = new StringBuffer(); //ÑéÇ©×Ö¶Î
                tmp.append("MERCHANTID=");
                tmp.append(MERCHANTID);
                tmp.append("&POSID=");
                tmp.append(POSID);
                tmp.append("&BRANCHID=");
                tmp.append(BRANCHID);
                tmp.append("&ORDERID=");
                tmp.append(orderId);
                tmp.append("&PAYMENT=");
                tmp.append(payMent);
                tmp.append("&CURCODE=");
                tmp.append(CURCODE);
                tmp.append("&TXCODE=");
                tmp.append(TXCODE);
                tmp.append("&REMARK1=");
                tmp.append(REMARK1);
                tmp.append("&REMARK2=");
                tmp.append(REMARK2);
                tmp.append("&RETURNTYPE=");
                tmp.append(RETURNTYPE);
                tmp.append("&TIMEOUT=");
                tmp.append(TIMEOUT);
                tmp.append("&PUB=");
                tmp.append(PUB32TR2);

                Map map = new HashMap();
                map.put("CCB_IBSVersion","V6");	//±ØÊäÏî
                map.put("MERCHANTID",MERCHANTID);
                map.put("BRANCHID",BRANCHID);
                map.put("POSID",POSID);
                map.put("ORDERID",orderId);
                map.put("PAYMENT",payMent);
                map.put("CURCODE",CURCODE);
                map.put("TXCODE",TXCODE);
                map.put("REMARK1",REMARK1);
                map.put("REMARK2",REMARK2);
                map.put("RETURNTYPE",RETURNTYPE);
                map.put("TIMEOUT",TIMEOUT);
                map.put("MAC",MD5.md5Str(tmp.toString()));

                String ret = HttpClientUtil.httpPost(bankURL, map);

                Gson gson = new Gson();
                QrURLDemo qrurl = (QrURLDemo) gson.fromJson(ret, QrURLDemo.class);
                String rets = HttpClientUtil.httpGet(qrurl.getPAYURL(), "UTF-8");
                JSONObject jsonObject = JSONObject.fromObject(rets);
                String qrurl1 = URLDecoder.decode(jsonObject.get("QRURL").toString(), "UTF-8");
                return qrurl1;
        }
}