public static String send(String ip, int port, int timeout, String data) throws UnknownHostException, IOException {
Socket client = new Socket(ip, port);
client.setSoTimeout(timeout * 1000); //timeout秒
- PrintWriter printWriter = new PrintWriter(client.getOutputStream());
+ PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(client.getOutputStream(),"GBK"));
// 发送消息
printWriter.println(data);
printWriter.flush();
// 读取返回信息
- InputStreamReader streamReader = new InputStreamReader(client.getInputStream());
+ InputStreamReader streamReader = new InputStreamReader(client.getInputStream(), "GBK");
BufferedReader reader = new BufferedReader(streamReader);
StringBuffer content = new StringBuffer(); //存返回信息
int ch;
import com.supwisdom.agent.Util.MD5;
+import java.io.UnsupportedEncodingException;
+
public class DlpayReq {
private static final String prefix = "<?xml version=\"1.0\" encoding=\"GBK\"?>";
private static final String BANKCARD_BIND_TRANSCODE = "BC5510";
/**
* 市民卡绑定请求XML
- * */
- public String getBindCardXml() {
+ */
+ public String getBindCardXml() throws UnsupportedEncodingException {
StringBuffer xml = new StringBuffer();
xml.append(prefix)
.append("<root>")
.append("<ID_NO>").append(idNo).append("</ID_NO>")
.append("<PHONE>").append(phone).append("</PHONE>")
.append("</root>");
- return String.format("%08d", xml.toString().length()) + xml.toString();
+ return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString();
}
-
/**
* 市民卡签约/解约请求XML
- * */
- public String getSignXml(){
+ */
+ public String getSignXml() throws UnsupportedEncodingException {
StringBuffer xml = new StringBuffer();
xml.append(prefix)
.append("<root>")
.append("<PHONE>").append(phone).append("</PHONE>")
.append("<TRANS_TYPE>").append(transType).append("</TRANS_TYPE>")
.append("</root>");
- return String.format("%08d", xml.toString().length()) + xml.toString();
+ return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString();
}
/**
* 市民卡代扣消费接口请求报文
- * */
- public String getCardpayXml(){
+ */
+ public String getCardpayXml() throws UnsupportedEncodingException {
StringBuffer xml = new StringBuffer();
xml.append(prefix)
.append("<root>")
.append("<DESCRIPTION>").append(description).append("</DESCRIPTION>")
.append("<MAC>").append(MD5.encodeByMD5ForYnrcc(merchantBcno + bcNo + amount)).append("</MAC>")
.append("</root>");
- return String.format("%08d", xml.toString().length()) + xml.toString();
+ return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString();
}
/**
* 市民卡退款接口请求报文
- * */
- public String getPayRefundXml(){
+ */
+ public String getPayRefundXml() throws UnsupportedEncodingException {
StringBuffer xml = new StringBuffer();
xml.append(prefix)
.append("<root>")
.append("<AMOUNT>").append(amount).append("</AMOUNT>")
.append("<DESCRIPTION>").append(description).append("</DESCRIPTION>")
.append("</root>");
- return String.format("%08d", xml.toString().length()) + xml.toString();
+ return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString();
}
/**
* 市民卡交易查询接口请求报文
- * */
- public String getQueryResultXml(){
+ */
+ public String getQueryResultXml() throws UnsupportedEncodingException {
StringBuffer xml = new StringBuffer();
xml.append(prefix)
.append("<root>")
.append("<SN>").append(sn).append("</SN>")
.append("<ORI_SN>").append(oriSn).append("</ORI_SN>")
.append("</root>");
- return String.format("%08d", xml.toString().length()) + xml.toString();
+ return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString();
}
/**
* 市民卡对账接口请求报文
- * */
- public String getChkfileXml(){
+ */
+ public String getChkfileXml() throws UnsupportedEncodingException {
StringBuffer xml = new StringBuffer();
xml.append(prefix)
.append("<root>")
.append("<DZDATE>").append(chkdate).append("</DZDATE>")
.append("<MERCHANT_BCNO>").append("</MERCHANT_BCNO>")
.append("</root>");
- return String.format("%08d", xml.toString().length()) + xml.toString();
+ return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString();
}
public String getTransdate() {