Commit 1203dd4c by Java-聂换换

提现

parent 5b37019a
...@@ -151,4 +151,26 @@ public class ComCode { ...@@ -151,4 +151,26 @@ public class ComCode {
public static final String PAYCHANNEL_HL2 = "quick_jfen"; public static final String PAYCHANNEL_HL2 = "quick_jfen";
public static final String PAYCHANNEL_HL3 = "quick_integral"; public static final String PAYCHANNEL_HL3 = "quick_integral";
public static final String PAYCHANNEL_HUANQIUHUIJU = "quick_huanqiuhuiju"; public static final String PAYCHANNEL_HUANQIUHUIJU = "quick_huanqiuhuiju";
/**
* 支付方式
*/
public static final String PAYMETHOD_QUICK = "quick";
public static final String PAYMETHOD_WX = "wx";
public static final String PAYMETHOD_ALI = "ali";
public static final String PAYMETHOD_PUTFORWARD = "put_forward";
/**
* 平安银行
*/
public static final String PINGANBANK_ENTERPRISECODE = Global.getConfig("pinganbank.enterprisecode");// 企业代码
public static final String PINGANBANK_ACCOUNT = Global.getConfig("pinganbank.account"); // 企业账号
public static final String PINGANBANK_OUTACCTNO = Global.getConfig("pinganbank.outacctno"); // 企业的付款人账号
public static final String PINGANBANK_OUTACCTNAME = Global.getConfig("pinganbank.outacctname"); // 企业的付款人账号
public static final String PINGANBANK_OUTACCTBANK = Global.getConfig("pinganbank.outacctbank"); // 企业银行代码
public static final String PINGANBANK_B2BICURL = Global.getConfig("pinganbank.b2bicurl"); // 企业银行代码
} }
...@@ -239,6 +239,21 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { ...@@ -239,6 +239,21 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
} }
/** /**
* 获取自定义昨天日期
* @param month 月份
* @return Date
*/
public static String getDateByDay ( String pattern,int day ) {
SimpleDateFormat dateFormat = new SimpleDateFormat ( pattern);
Calendar calendar = Calendar.getInstance ( );
Date date = new Date();
calendar.setTime ( date );
calendar.add ( Calendar.DATE , day );
return dateFormat.format ( calendar.getTime ( ) );
}
/**
* 获取当月第一天 * 获取当月第一天
* *
* @param yyyy-mm-dd * @param yyyy-mm-dd
......
...@@ -151,6 +151,27 @@ public class PayApiController { ...@@ -151,6 +151,27 @@ public class PayApiController {
return resp; return resp;
} }
/**
* 提现
*
* @param request
* @return
*/
@PostMapping("/putForward")
public Response putForward(JuHeZhongPayRequest request) {
Response resp = new Response();
try {
return payService.putForward(request);
}catch (Exception e){
resp.setMessage(ComCode.STATUS_CODE_9998_DESC);
resp.setStatus(ComCode.STATUS_CODE_9998);
resp.setError(e.getMessage());
}
return resp;
}
/** /**
* juhezhong快捷支付的回调 * juhezhong快捷支付的回调
* @param request * @param request
......
package com.thinkgem.jeesite.modules.pay.pinganbank.dto;
public class PingAnBankDto {
private String account; // 账号
private String ccyCode;// 货币类型 RMB 人民币,USD 美元,HKD 港币, 默认为RMB
private String ccyType;// 钞汇标志 C 钞户, R汇户,默认为C。
private String enterprisecode;
private String orderCode;
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getCcyCode() {
return ccyCode;
}
public void setCcyCode(String ccyCode) {
this.ccyCode = ccyCode;
}
public String getCcyType() {
return ccyType;
}
public void setCcyType(String ccyType) {
this.ccyType = ccyType;
}
public String getEnterprisecode() {
return enterprisecode;
}
public void setEnterprisecode(String enterprisecode) {
this.enterprisecode = enterprisecode;
}
public String getOrderCode() {
return orderCode;
}
public void setOrderCode(String orderCode) {
this.orderCode = orderCode;
}
}
package com.thinkgem.jeesite.modules.pay.pinganbank.util;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.thinkgem.jeesite.common.constant.ComCode;
import com.thinkgem.jeesite.common.utils.DateUtils;
import com.thinkgem.jeesite.common.utils.IdGen;
import com.thinkgem.jeesite.common.utils.StringUtils;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.jdom2.JDOMException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Date;
public class PingAnBankUtils {
public static String getBobyLength(String boby) throws UnsupportedEncodingException {
String length = boby.getBytes("GBK").length+"";
int sub = 10-length.length() ;
StringBuffer sb = new StringBuffer();
for(int i=0;i<sub;i++){
sb.append("0");
}
sb.append(length);
return sb.toString();
}
public static String getHead(String boby,String enterprisecode,String transactionCode,String orderCode) throws UnsupportedEncodingException {
StringBuffer sb = new StringBuffer();
sb.append("A001010102")
.append(enterprisecode)
.append(PingAnBankUtils.getBobyLength(boby))
.append(transactionCode)
.append(" ")
.append("0000001")
.append(DateUtils.formatDate(new Date(),"yyyymmddhhmmss"));// 时间
if(StringUtils.isBlank(orderCode)){
orderCode = IdGen.randomBase62(20);
}
sb.append(orderCode)// 交易码
.append("000000")//返回码 请求时必须填写 000000 非“000000”代表交易受理异常或失败
.append("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000RSA-SHA100000000000")
.append(boby.toString());
System.out.println(sb.toString());
return sb.toString();
}
public static JSONObject post(String parma) throws IOException, JDOMException {
// 目前是本地的服务 等服务器好了之后
PostMethod postMethod = new PostMethod(
ComCode.PINGANBANK_B2BICURL);
postMethod.setRequestEntity(new StringRequestEntity(
parma, "text/html", "GBK"));
postMethod.setRequestHeader("Content-Type",
"text/xml; charset=GBK");
HttpClient httpClient = new HttpClient();
int resultint = httpClient.executeMethod(postMethod);
System.out.println(postMethod.getResponseBody());
String res = new String(postMethod.getResponseBody(),"GBK");
System.out.println("http response:" + res);
postMethod.releaseConnection();
System.out.println(resultint);
if(res.contains("<")){
System.out.println(res.substring(res.indexOf("<")));
JSONObject json= XmlUtil.xml2JSON(res.substring(res.indexOf("<")).getBytes());
System.out.println(json.toJSONString());
return json;
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("all",res);
return jsonObject;
}
}
package com.thinkgem.jeesite.modules.pay.pinganbank.util;
import com.alibaba.fastjson.JSONObject;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.LinkedList;
import java.util.List;
public class XmlUtil {
public static JSONObject xml2JSON(byte[] xml) throws JDOMException, IOException {
JSONObject json = new JSONObject();
InputStream is = new ByteArrayInputStream(xml);
SAXBuilder sb = new SAXBuilder();
org.jdom2.Document doc = sb.build(is);
Element root = doc.getRootElement();
json.put(root.getName(), iterateElement(root));
return json;
}
private static JSONObject iterateElement(Element element) {
List node = element.getChildren();
Element et = null;
JSONObject obj = new JSONObject();
List list = null;
for (int i = 0; i < node.size(); i++) {
list = new LinkedList();
et = (Element) node.get(i);
if (et.getTextTrim().equals("")) {
if (et.getChildren().size() == 0)
continue;
if (obj.containsKey(et.getName())) {
list = (List) obj.get(et.getName());
}
list.add(iterateElement(et));
obj.put(et.getName(), list);
} else {
if (obj.containsKey(et.getName())) {
list = (List) obj.get(et.getName());
}
list.add(et.getTextTrim());
obj.put(et.getName(), list);
}
}
return obj;
}
/**
* JsonObject转换成xml
*
* @param json
* @return
*/
public static String JsonBean2XmlString(JSONObject json){
System.out.println("JsonBean转换成xml:");
System.out.println("json:"+json);
StringBuffer sb = new StringBuffer("<?xml version=\"1.0\" encoding=\"GBK\"?><Result>");
for(Object key : json.keySet()){
sb.append("<").append(key).append(">");
Object value = json.get(key);
//判断value是否含有JSONArray
try {
JSONObject jsonV = ((JSONObject)value);
for(Object key2 : jsonV.keySet()){
sb.append("<").append(key2).append(">");
Object value2 = jsonV.get(key2);
sb.append(value2);
sb.append("</").append(key2).append(">");
}
}catch (Exception e){
sb.append(value);
}
sb.append("</").append(key).append(">");
}
sb.append("</Result>");
return sb.toString();
}
public static void main(String[] args) throws JDOMException, IOException {
String xml="<?xml version=\"1.0\" encoding=\"utf-8\" ?><MoBaoAccount MessageType=\"UserMobilePay\" PlatformID=\"b2ctest\"><OrderNo>M20150521084825</OrderNo><TradeAmt>5000.00</TradeAmt><Commission>0.5</Commission><UserID>zhuxiaolong</UserID><MerchID>zhuxiaolong1</MerchID><tradeType>0</tradeType><CustParam>123</CustParam> <NotifyUrl>http://mobaopay.com/callback.do</NotifyUrl><TradeSummary>订单</TradeSummary></MoBaoAccount>";
JSONObject json=xml2JSON(xml.getBytes());
System.out.println(json.toJSONString());
System.out.println(JsonBean2XmlString(json));
}
}
...@@ -108,7 +108,8 @@ ...@@ -108,7 +108,8 @@
<select id="findDictListPayChannel" resultType="com.thinkgem.jeesite.modules.sys.entity.DictPayChannel"> <select id="findDictListPayChannel" resultType="com.thinkgem.jeesite.modules.sys.entity.DictPayChannel">
SELECT SELECT
value, value,
label label,
remarks
FROM sys_dict FROM sys_dict
WHERE del_flag = #{DEL_FLAG_NORMAL} WHERE del_flag = #{DEL_FLAG_NORMAL}
<if test="type != null and type != ''"> <if test="type != null and type != ''">
......
...@@ -829,9 +829,11 @@ ...@@ -829,9 +829,11 @@
yc.create_by AS createdUser, yc.create_by AS createdUser,
yc.update_date AS modified, yc.update_date AS modified,
yc.update_by AS modifiedUser, yc.update_by AS modifiedUser,
yc.del_flag AS delFlag yc.del_flag AS delFlag,
yb.bank_name AS bankName
FROM FROM
youka_cards yc youka_cards yc
LEFT JOIN youka_bank yb ON yb.bank_code = yc.belong_bank
WHERE WHERE
yc.card_no = #{cardNo} yc.card_no = #{cardNo}
</select> </select>
......
...@@ -148,3 +148,25 @@ weixin.appsecret = libo13821934497libo1382193449700 ...@@ -148,3 +148,25 @@ weixin.appsecret = libo13821934497libo1382193449700
alipay.appid = 2018041002530242 alipay.appid = 2018041002530242
alipay.private.key = MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC3hFTccWmIFkIQzitDdGTgWKgbs1S2NZutDlUCdiWrXSV+aAvQDqpLXJb7CQ1iSY3CJ4rPbBs7GFZj1rZ1T722Xj1QiFJRTgSSaUe9gejDFOIBpyoG0gT7gZsFrdcYHCzJcA3L9LUWt9XLLH34couARVGY8FUa1GXVUierMms4JnJ1I+Eos4jBmTpLFpZb6brsfuGOzk501KWk+mVXhdEf47MoT6i0ujebf22rdWqQz4ukS7eRbRfvoh0g5wEt14NQHXFLgSAqPN+ZDpKQ8H9Cz0Mj37iN0SA31j3S/Cl0zyPL9n+bWSJdE2MDge8nC7joR4Nxbqirlp3qJ7YOtMghAgMBAAECggEAXG9JFygA0cz0Reayn+1WijHdquYu+wARg58+blj4LFJkekEKAigA2qiuW495sFIAFxU3s7ZuGNvvV6ZkjL43fk4FcDTZ0Z4Ma3qf6fIvPWOdWtvKLVlHrS7g2IFxX/GBFY1dRafiNqkuBIJKiQOZBGjl6rTTCQqGqGYTGQXyP3syu72Nc1p7cq2a4H4Ux+vAC0OxYuCeL12wR5qf1PJ0O+h/syr7+WY7sez5ae36e82C6iQfl3RNqAQyuiqADhUFa/IoKhb1IklddKZZkiU0wsNeLsqkklNSXgejlPKom5MLyRloSyEqARvXBTfAXPn0IkQ9eYNLh1k2MOh5SfqKyQKBgQDum0+irr4T0gpYJ51YzJIjEBn5bUOo0Q0vYb0jRQ0y0lfmAqSTV4RdlasMf8Ny3DZvO1C4nTQ0/Mv2HDJTtLUAC/VntEiKdgS0Dj0iyqTqWXYtTsA1zKr+7RgjPdOC3P7y6lbV+xfmnjHKGFIGKPaxeNVQe72bbLrg5QTMYw0A1wKBgQDE5PqXl6lvEFbNDyHIXOnfXyox1Q881fTZKavKOel6kGP1Qn82BrEC/BF+8ZkGCe/HHuzuFPcw7sInV13xBEVOegcHximXmiR5S8j/SfkTFtrKttMkaZPoW64RrNNsnPckhLTymTefpXX4JQj/ZkNtfg3VO2O9VKkJy74X417HxwKBgBPNYfOPawj8Eo20Y/OdrrcoO++eaNIW33BCPU8zCOBh4pedOolb5wlZRYPZCqB6tC3RD2by7QVEwaygNHEL+0WQuIItzSNongVPdTVw+fTVDeC+u2b7oGldxfYOyIIA00vXtPM3Tol+MYWjNRN7zNV3wMRYMKk4gd3uQ9KumcKrAoGBAIDbAgz3mlEvNj9ZKdjAxeYDl8+pCiHcPDNrDBx6rgwiNuiprisjUfEMGj8jyeuj0SJVYOWnHucNOk8Y5Ef5bYogXj1+OHYY0Mn5CP/Z34HYsTN9Vs07syqb5V13553rU+q4Vtt13mtCk+PkCPFscbBUkKT+CxY7M61Pg4aKrNq9AoGATMAwhGqTdcXvBb1XV5ScbP+UIkqLbib8eYDJRIMlCGGqDMbOoBQQ9joJFtZjV2sL0QwF7qaxtjLs+VVnZkVYHRtn25frtb7teLRuJB7rW9905zqGtCx730uSCX8PuyPS98cV0KnuVCIZZMQbLNVb2M/u/ENJYqSVAETy+xAs7hQ= alipay.private.key = MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC3hFTccWmIFkIQzitDdGTgWKgbs1S2NZutDlUCdiWrXSV+aAvQDqpLXJb7CQ1iSY3CJ4rPbBs7GFZj1rZ1T722Xj1QiFJRTgSSaUe9gejDFOIBpyoG0gT7gZsFrdcYHCzJcA3L9LUWt9XLLH34couARVGY8FUa1GXVUierMms4JnJ1I+Eos4jBmTpLFpZb6brsfuGOzk501KWk+mVXhdEf47MoT6i0ujebf22rdWqQz4ukS7eRbRfvoh0g5wEt14NQHXFLgSAqPN+ZDpKQ8H9Cz0Mj37iN0SA31j3S/Cl0zyPL9n+bWSJdE2MDge8nC7joR4Nxbqirlp3qJ7YOtMghAgMBAAECggEAXG9JFygA0cz0Reayn+1WijHdquYu+wARg58+blj4LFJkekEKAigA2qiuW495sFIAFxU3s7ZuGNvvV6ZkjL43fk4FcDTZ0Z4Ma3qf6fIvPWOdWtvKLVlHrS7g2IFxX/GBFY1dRafiNqkuBIJKiQOZBGjl6rTTCQqGqGYTGQXyP3syu72Nc1p7cq2a4H4Ux+vAC0OxYuCeL12wR5qf1PJ0O+h/syr7+WY7sez5ae36e82C6iQfl3RNqAQyuiqADhUFa/IoKhb1IklddKZZkiU0wsNeLsqkklNSXgejlPKom5MLyRloSyEqARvXBTfAXPn0IkQ9eYNLh1k2MOh5SfqKyQKBgQDum0+irr4T0gpYJ51YzJIjEBn5bUOo0Q0vYb0jRQ0y0lfmAqSTV4RdlasMf8Ny3DZvO1C4nTQ0/Mv2HDJTtLUAC/VntEiKdgS0Dj0iyqTqWXYtTsA1zKr+7RgjPdOC3P7y6lbV+xfmnjHKGFIGKPaxeNVQe72bbLrg5QTMYw0A1wKBgQDE5PqXl6lvEFbNDyHIXOnfXyox1Q881fTZKavKOel6kGP1Qn82BrEC/BF+8ZkGCe/HHuzuFPcw7sInV13xBEVOegcHximXmiR5S8j/SfkTFtrKttMkaZPoW64RrNNsnPckhLTymTefpXX4JQj/ZkNtfg3VO2O9VKkJy74X417HxwKBgBPNYfOPawj8Eo20Y/OdrrcoO++eaNIW33BCPU8zCOBh4pedOolb5wlZRYPZCqB6tC3RD2by7QVEwaygNHEL+0WQuIItzSNongVPdTVw+fTVDeC+u2b7oGldxfYOyIIA00vXtPM3Tol+MYWjNRN7zNV3wMRYMKk4gd3uQ9KumcKrAoGBAIDbAgz3mlEvNj9ZKdjAxeYDl8+pCiHcPDNrDBx6rgwiNuiprisjUfEMGj8jyeuj0SJVYOWnHucNOk8Y5Ef5bYogXj1+OHYY0Mn5CP/Z34HYsTN9Vs07syqb5V13553rU+q4Vtt13mtCk+PkCPFscbBUkKT+CxY7M61Pg4aKrNq9AoGATMAwhGqTdcXvBb1XV5ScbP+UIkqLbib8eYDJRIMlCGGqDMbOoBQQ9joJFtZjV2sL0QwF7qaxtjLs+VVnZkVYHRtn25frtb7teLRuJB7rW9905zqGtCx730uSCX8PuyPS98cV0KnuVCIZZMQbLNVb2M/u/ENJYqSVAETy+xAs7hQ=
alipay.public.key = MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg3CAeybKvbk7slUC6wCZiqGKgZwwcL4vvlztKO52xqTnHcsxhC+ogrtg5x59+3T4fKqOs38vC8faEbGbCUqr68hrjXkE0ZuPWygrp3jTUC9vkw+d+Fk18xsoRqac3b7OeNVLbCN9Nq2rAzVqLrNeQFWjpZbXFpPcvSLH3rv4U3ljhjvFnEGOpxu8vdpc/AGwZ+R2GX3yH1W85iWcO3GAEC3raTRq3RRgsKC3WZTq85Vxl70K0FfLKDjNTOQVnEwfYS9wTl4zDTBObxAfQEdH03fXJTkpLwAKlsiJiPRsfyoJMFA6nVCfKhjJwXia99MT1kGHVRyPu/JpaXepme2orwIDAQAB alipay.public.key = MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg3CAeybKvbk7slUC6wCZiqGKgZwwcL4vvlztKO52xqTnHcsxhC+ogrtg5x59+3T4fKqOs38vC8faEbGbCUqr68hrjXkE0ZuPWygrp3jTUC9vkw+d+Fk18xsoRqac3b7OeNVLbCN9Nq2rAzVqLrNeQFWjpZbXFpPcvSLH3rv4U3ljhjvFnEGOpxu8vdpc/AGwZ+R2GX3yH1W85iWcO3GAEC3raTRq3RRgsKC3WZTq85Vxl70K0FfLKDjNTOQVnEwfYS9wTl4zDTBObxAfQEdH03fXJTkpLwAKlsiJiPRsfyoJMFA6nVCfKhjJwXia99MT1kGHVRyPu/JpaXepme2orwIDAQAB
## 平安银行相关
## 企业代码
pinganbank.enterprisecode = 00202043000000326000
## 企业账号
pinganbank.account = 15000092480851
## 企业的付款人账号
pinganbank.outacctno = 15000092480851
## 企业的付款人姓名
pinganbank.outacctname = 天津盛世互通网络科技有限公司
## 企业银行代码
pinganbank.outacctbank = 307110004315
## 企业银行代码
pinganbank.b2bicurl = http://39.107.124.166:7072
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment