Commit 3acba59c by wangxu

Merge remote-tracking branch 'origin/develop' into develop

# Conflicts:
#	src/main/java/com/thinkgem/jeesite/modules/pay/service/PayApiService.java
parents 692524e4 35f677bd
...@@ -50,6 +50,7 @@ public static final String QUICK_WEB_PAY = "/quick/web/pay"; ...@@ -50,6 +50,7 @@ public static final String QUICK_WEB_PAY = "/quick/web/pay";
public static final String QUICK_PAY_URL = "/api/quick/pre/pay"; // 快捷支付 public static final String QUICK_PAY_URL = "/api/quick/pre/pay"; // 快捷支付
public static final String NO_INTEGRAL_QUICK_PAY_URL = "/quick/pay"; // 无积分快捷支付 public static final String NO_INTEGRAL_QUICK_PAY_URL = "/quick/pay"; // 无积分快捷支付
public static final String NO_INTEGRAL_ORDER_QUERY_URL = "/order/query"; // 查询订单 public static final String NO_INTEGRAL_ORDER_QUERY_URL = "/order/query"; // 查询订单
public static final String NOTIFY_CALLBACK_URL = "http://youkapay.com:8080/youka-api/api/pay/notifyQuickPay";
public static final String EXTRA_RATE = "200"; // 附加手续费(单位:分) public static final String EXTRA_RATE = "200"; // 附加手续费(单位:分)
......
package com.thinkgem.jeesite.modules.pay.api; package com.thinkgem.jeesite.modules.pay.api;
import com.google.common.collect.Maps;
import com.thinkgem.jeesite.common.baseBean.Response; import com.thinkgem.jeesite.common.baseBean.Response;
import com.thinkgem.jeesite.common.constant.ComCode; import com.thinkgem.jeesite.common.constant.ComCode;
import com.thinkgem.jeesite.common.utils.StringUtils;
import com.thinkgem.jeesite.modules.commonError.MyException; import com.thinkgem.jeesite.modules.commonError.MyException;
import com.thinkgem.jeesite.modules.pay.entity.BalanceEntity;
import com.thinkgem.jeesite.modules.pay.entity.OrderEntity; import com.thinkgem.jeesite.modules.pay.entity.OrderEntity;
import com.thinkgem.jeesite.modules.pay.juhezhong.dto.PayBackDto; import com.thinkgem.jeesite.modules.pay.juhezhong.dto.PayBackDto;
import com.thinkgem.jeesite.modules.pay.service.PayApiService; import com.thinkgem.jeesite.modules.pay.service.PayApiService;
...@@ -12,13 +13,12 @@ import com.thinkgem.jeesite.modules.sys.entity.DictPayChannel; ...@@ -12,13 +13,12 @@ import com.thinkgem.jeesite.modules.sys.entity.DictPayChannel;
import com.thinkgem.jeesite.modules.sys.service.DictService; import com.thinkgem.jeesite.modules.sys.service.DictService;
import com.thinkgem.jeesite.modules.user.bean.JuHeZhongPayRequest; import com.thinkgem.jeesite.modules.user.bean.JuHeZhongPayRequest;
import com.thinkgem.jeesite.modules.user.bean.UserRequest; import com.thinkgem.jeesite.modules.user.bean.UserRequest;
import com.thinkgem.jeesite.modules.user.entity.BelongBankEntity;
import com.thinkgem.jeesite.modules.user.entity.CardEntity; import com.thinkgem.jeesite.modules.user.entity.CardEntity;
import com.thinkgem.jeesite.modules.user.entity.CardSwpaccidEntity; import com.thinkgem.jeesite.modules.user.entity.CardSwpaccidEntity;
import com.thinkgem.jeesite.modules.user.entity.UserEntity; import com.thinkgem.jeesite.modules.user.entity.UserEntity;
import com.thinkgem.jeesite.modules.user.service.UserApiService; import com.thinkgem.jeesite.modules.user.service.UserApiService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpRequest;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -204,23 +204,92 @@ public class PayApiController { ...@@ -204,23 +204,92 @@ public class PayApiController {
System.out.println("。。。。。。回调。。。。。"); System.out.println("。。。。。。回调。。。。。");
Response responseRetrun = new Response(); Response responseRetrun = new Response();
Map map=request.getParameterMap(); Map map=request.getParameterMap();
Set keSet=map.entrySet(); printNotifyParam(map);
for(Iterator itr = keSet.iterator(); itr.hasNext();){ // Set keSet=map.entrySet();
Map.Entry me=(Map.Entry)itr.next(); // for(Iterator itr = keSet.iterator(); itr.hasNext();){
Object ok=me.getKey(); //获取参数名 // Map.Entry me=(Map.Entry)itr.next();
Object ov=me.getValue(); //获取参数值 // Object ok=me.getKey(); //获取参数名
System.out.println(ok+"="+ok.toString()); // Object ov=me.getValue(); //获取参数值
System.out.println(ov+"="+ov.toString()); // System.out.println(ok+"="+ok.toString());
String[] value=new String[1]; // System.out.println(ov+"="+ov.toString());
if(ov instanceof String[]){ // String[] value=new String[1];
value=(String[])ov; // if(ov instanceof String[]){
}else{ // value=(String[])ov;
value[0]=ov.toString(); // }else{
// value[0]=ov.toString();
// }
// for(int k=0;k <value.length;k++){
// System.out.println(ok+"="+value[k]);
// }
// }
//设置编码
try {
request.setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String orderId=request.getParameter("orderId");
String code = request.getParameter("code");
if("0000".equals(code)){
System.out.println("orderId:"+orderId);
OrderEntity orderEntity = new OrderEntity();
orderEntity.setPayCode(orderId);
try {
orderEntity = payService.notifyPay(orderEntity);
} catch (Exception e) {
e.printStackTrace();
} }
for(int k=0;k <value.length;k++){ //返回true 收到请求,停止通知
System.out.println(ok+"="+value[k]); PrintWriter write= null;
try {
write = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
} }
write.print("true");
responseRetrun.setMessage("ok");
responseRetrun.setStatus(ComCode.STATUS_CODE_9998);
responseRetrun.setData(orderEntity);
write.flush();
write.close();
} }
}
/**
* juhezhongHL4快捷支付的回调
* @param request
* @param response
*/
@RequestMapping("/notifyQuickPay")
public void notifyQuickPay(HttpServletRequest request, HttpServletResponse response) {
System.out.println("H4通道:quickPay支付回调");
Response responseRetrun = new Response();
Map map=request.getParameterMap();
printNotifyParam(map);
// Set keSet=map.entrySet();
// for(Iterator itr = keSet.iterator(); itr.hasNext();){
// Map.Entry me=(Map.Entry)itr.next();
// Object ok=me.getKey(); //获取参数名
// Object ov=me.getValue(); //获取参数值
// System.out.println(ok+"="+ok.toString());
// System.out.println(ov+"="+ov.toString());
// String[] value=new String[1];
// if(ov instanceof String[]){
// value=(String[])ov;
// }else{
// value[0]=ov.toString();
// }
// for(int k=0;k <value.length;k++){
// System.out.println(ok+"="+value[k]);
// }
// }
//设置编码 //设置编码
try { try {
request.setCharacterEncoding("UTF-8"); request.setCharacterEncoding("UTF-8");
...@@ -231,7 +300,7 @@ public class PayApiController { ...@@ -231,7 +300,7 @@ public class PayApiController {
String orderId=request.getParameter("orderId"); String orderId=request.getParameter("orderId");
String code = request.getParameter("code"); String code = request.getParameter("code");
if("0000".equals(code)){ if("0000".equals(code)){
System.out.println("orderId:"+orderId); System.out.println("quick pay orderId:"+orderId);
OrderEntity orderEntity = new OrderEntity(); OrderEntity orderEntity = new OrderEntity();
orderEntity.setPayCode(orderId); orderEntity.setPayCode(orderId);
...@@ -271,23 +340,24 @@ public class PayApiController { ...@@ -271,23 +340,24 @@ public class PayApiController {
System.out.println("。。。。。。回调。。。。。"); System.out.println("。。。。。。回调。。。。。");
Response responseRetrun = new Response(); Response responseRetrun = new Response();
Map map=request.getParameterMap(); Map map=request.getParameterMap();
Set keSet=map.entrySet(); printNotifyParam(map);
for(Iterator itr = keSet.iterator(); itr.hasNext();){ // Set keSet=map.entrySet();
Map.Entry me=(Map.Entry)itr.next(); // for(Iterator itr = keSet.iterator(); itr.hasNext();){
Object ok=me.getKey(); //获取参数名 // Map.Entry me=(Map.Entry)itr.next();
Object ov=me.getValue(); //获取参数值 // Object ok=me.getKey(); //获取参数名
System.out.println(ok+"="+ok.toString()); // Object ov=me.getValue(); //获取参数值
System.out.println(ov+"="+ov.toString()); // System.out.println(ok+"="+ok.toString());
String[] value=new String[1]; // System.out.println(ov+"="+ov.toString());
if(ov instanceof String[]){ // String[] value=new String[1];
value=(String[])ov; // if(ov instanceof String[]){
}else{ // value=(String[])ov;
value[0]=ov.toString(); // }else{
} // value[0]=ov.toString();
for(int k=0;k <value.length;k++){ // }
System.out.println(ok+"="+value[k]); // for(int k=0;k <value.length;k++){
} // System.out.println(ok+"="+value[k]);
} // }
// }
//设置编码 //设置编码
try { try {
request.setCharacterEncoding("UTF-8"); request.setCharacterEncoding("UTF-8");
...@@ -338,23 +408,24 @@ public class PayApiController { ...@@ -338,23 +408,24 @@ public class PayApiController {
public void openCardCallback(HttpServletRequest request, HttpServletResponse response) { public void openCardCallback(HttpServletRequest request, HttpServletResponse response) {
System.out.println("。。。。。。openCardCallback回调。。。。。"); System.out.println("。。。。。。openCardCallback回调。。。。。");
Map map=request.getParameterMap(); Map map=request.getParameterMap();
Set keSet=map.entrySet(); printNotifyParam(map);
for(Iterator itr = keSet.iterator(); itr.hasNext();){ // Set keSet=map.entrySet();
Map.Entry me=(Map.Entry)itr.next(); // for(Iterator itr = keSet.iterator(); itr.hasNext();){
Object ok=me.getKey(); //获取参数名 // Map.Entry me=(Map.Entry)itr.next();
Object ov=me.getValue(); //获取参数值 // Object ok=me.getKey(); //获取参数名
System.out.println(ok+"="+ok.toString()); // Object ov=me.getValue(); //获取参数值
System.out.println(ov+"="+ov.toString()); // System.out.println(ok+"="+ok.toString());
String[] value=new String[1]; // System.out.println(ov+"="+ov.toString());
if(ov instanceof String[]){ // String[] value=new String[1];
value=(String[])ov; // if(ov instanceof String[]){
}else{ // value=(String[])ov;
value[0]=ov.toString(); // }else{
} // value[0]=ov.toString();
for(int k=0;k <value.length;k++){ // }
System.out.println(ok+"="+value[k]); // for(int k=0;k <value.length;k++){
} // System.out.println(ok+"="+value[k]);
} // }
// }
//设置编码 //设置编码
try { try {
request.setCharacterEncoding("UTF-8"); request.setCharacterEncoding("UTF-8");
...@@ -406,23 +477,24 @@ public class PayApiController { ...@@ -406,23 +477,24 @@ public class PayApiController {
System.out.println("。。。。。。支付宝回调。。。。。"); System.out.println("。。。。。。支付宝回调。。。。。");
Response responseRetrun = new Response(); Response responseRetrun = new Response();
Map map=request.getParameterMap(); Map map=request.getParameterMap();
Set keSet=map.entrySet(); printNotifyParam(map);
for(Iterator itr = keSet.iterator(); itr.hasNext();){ // Set keSet=map.entrySet();
Map.Entry me=(Map.Entry)itr.next(); // for(Iterator itr = keSet.iterator(); itr.hasNext();){
Object ok=me.getKey(); //获取参数名 // Map.Entry me=(Map.Entry)itr.next();
Object ov=me.getValue(); //获取参数值 // Object ok=me.getKey(); //获取参数名
System.out.println(ok+"="+ok.toString()); // Object ov=me.getValue(); //获取参数值
System.out.println(ov+"="+ov.toString()); // System.out.println(ok+"="+ok.toString());
String[] value=new String[1]; // System.out.println(ov+"="+ov.toString());
if(ov instanceof String[]){ // String[] value=new String[1];
value=(String[])ov; // if(ov instanceof String[]){
}else{ // value=(String[])ov;
value[0]=ov.toString(); // }else{
} // value[0]=ov.toString();
for(int k=0;k <value.length;k++){ // }
System.out.println(ok+"="+value[k]); // for(int k=0;k <value.length;k++){
} // System.out.println(ok+"="+value[k]);
} // }
// }
//设置编码 //设置编码
try { try {
request.setCharacterEncoding("UTF-8"); request.setCharacterEncoding("UTF-8");
...@@ -466,6 +538,31 @@ public class PayApiController { ...@@ -466,6 +538,31 @@ public class PayApiController {
} }
/**
* 打印支付回调信息
* @param map
*/
private void printNotifyParam(Map map){
Set keSet = map.entrySet();
for(Iterator itr = keSet.iterator(); itr.hasNext();){
Map.Entry me=(Map.Entry)itr.next();
Object ok=me.getKey(); //获取参数名
Object ov=me.getValue(); //获取参数值
System.out.println(ok+"="+ok.toString());
System.out.println(ov+"="+ov.toString());
String[] value=new String[1];
if(ov instanceof String[]){
value=(String[])ov;
}else{
value[0]=ov.toString();
}
for(int k=0;k <value.length;k++){
System.out.println(ok+"="+value[k]);
}
}
}
/** /**
* 获取支付的结果 * 获取支付的结果
* @param orderEntity * @param orderEntity
...@@ -537,4 +634,27 @@ public class PayApiController { ...@@ -537,4 +634,27 @@ public class PayApiController {
return response; return response;
} }
/**
* 获取可提现额度
* @param request
* @return
*/
@PostMapping("/putForwardNum")
public Response getPutForwardNum(JuHeZhongPayRequest request) {
Response resp = new Response();
try {
BalanceEntity balance = payService.getPutForwardNum(request);
String balanceNum = balance.getBalance();
resp.setData(balanceNum);
resp.setMessage(ComCode.STATUS_CODE_2000_DESC);
resp.setStatus(ComCode.STATUS_CODE_2000);
}catch (Exception e){
resp.setMessage(ComCode.STATUS_CODE_9998_DESC);
resp.setStatus(ComCode.STATUS_CODE_9998);
resp.setError(e.getMessage());
}
return resp;
}
} }
...@@ -133,34 +133,34 @@ public class JuHeZhongPayJFenService { ...@@ -133,34 +133,34 @@ public class JuHeZhongPayJFenService {
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
JuHeZhongPayJFenService juHeZhongPayJFenService = new JuHeZhongPayJFenService(); JuHeZhongPayJFenService juHeZhongPayJFenService = new JuHeZhongPayJFenService();
JSONObject dto = new JSONObject(); // 商户入驻
dto.put("orderId", MakeOrderNum.makeOrderNum()); // JSONObject dto = new JSONObject();
// subMchId = B105244442 // dto.put("orderId", MakeOrderNum.makeOrderNum());
//// subMchId = B105244442
////
//// 聂换换 B105247024
// dto.put("serviceType",1);
// dto.put("subMerchantName","B105244442");
// dto.put("subMerchantType","PERSON");
// dto.put("businessLicense","businessLicense23");
// dto.put("legalPersonName","唐挺");
// dto.put("legalPersonID","510623198809184419");
// dto.put("subMerchantPersonName","唐挺");
// dto.put("subMerchantPersonPhone","15902202472");
// dto.put("bankType","TOPRIVATE");
// //
// 聂换换 B105247024 // dto.put("accountName","唐挺");
dto.put("serviceType",1); // dto.put("accountNo","6217000066011457475");
dto.put("subMerchantName","kklsubMerchantName32"); // dto.put("bankName","中国建设银行");
dto.put("subMerchantType","PERSON"); // dto.put("bankProv","天津");
dto.put("businessLicense","businessLicense23"); // dto.put("bankCity","天津市");
dto.put("legalPersonName","聂换换"); // dto.put("bankBranch","开户地址new");
dto.put("legalPersonID","130434199212214429"); // dto.put("bankCode","105100000017");
dto.put("subMerchantPersonName","聂换换"); //
dto.put("subMerchantPersonPhone","13722537737"); // dto.put("timestamp",System.currentTimeMillis());
dto.put("bankType","TOPRIVATE"); //
// JSONObject jsonObject = juHeZhongPayJFenService.merchantIn(dto);
dto.put("accountName","聂换换"); // System.out.println(jsonObject);
dto.put("accountNo","6217000060031684713");
dto.put("bankName","中国建设银行");
dto.put("bankProv","天津");
dto.put("bankCity","天津市");
dto.put("bankBranch","开户地址new");
dto.put("bankCode","105100000017");
dto.put("timestamp",System.currentTimeMillis());
juHeZhongPayJFenService.merchantIn(dto);
// dto.put("subMchId","B105247024"); // dto.put("subMchId","B105247024");
// dto.put("paymentType","QUICKPAY"); // dto.put("paymentType","QUICKPAY");
...@@ -179,10 +179,49 @@ public class JuHeZhongPayJFenService { ...@@ -179,10 +179,49 @@ public class JuHeZhongPayJFenService {
// dto.put("accountName","李波"); // dto.put("accountName","李波");
// dto.put("accountNo","6225571645517950"); // dto.put("accountNo","6225571645517950");
// dto.put("mobile","13821934497"); // dto.put("mobile","13821934497");
// dto.put("notifyUrl","http://39.107.124.166:8080/youka-api/api/pay/openCardCallback"); // dto.put("notifyUrl","http://youkapay.com:8080/youka-api/api/pay/openCardCallback");
// dto.put("merchantKey",ComCode.JFEN_MERCHANT_KEY); // dto.put("merchantKey",ComCode.JFEN_MERCHANT_KEY);
// dto.put("timestamp",System.currentTimeMillis()); // dto.put("timestamp",System.currentTimeMillis());
//查询订单
// CommonDto dto = new CommonDto();
// dto.setOrderId("lKJWcEpDHVXNaB3mA4VlR0FFLniC53OSLVcvptca70WrvG02wFh2u2xx8csWYdbn");
// dto.setMerchantId(ComCode.JFEN_MERCHANT_ID);
// dto.setMerchantKey(ComCode.JFEN_MERCHANT_KEY);
// dto.setTimestamp(System.currentTimeMillis());
// JSONObject query = juHeZhongPayJFenService.query(dto);
// System.out.println(query);
// 添加汇率
// JSONObject dto = new JSONObject();
// dto.put("orderId", MakeOrderNum.makeOrderNum());
// subMchId = B105244442
// 聂换换 B105247024
// dto.put("subMerchantName","kklsubMerchantName32");
// dto.put("subMerchantType","PERSON");
// dto.put("businessLicense","businessLicense23");
// dto.put("legalPersonName","聂换换");
// dto.put("legalPersonID","130434199212214429");
// dto.put("subMerchantPersonName","聂换换");
// dto.put("subMerchantPersonPhone","13722537737");
// dto.put("bankType","TOPRIVATE");
//
// dto.put("accountName","聂换换");
// dto.put("accountNo","6217000060031684713");
// dto.put("bankName","中国建设银行");
// dto.put("bankProv","天津");
// dto.put("bankCity","天津市");
// dto.put("bankBranch","开户地址new");
// dto.put("bankCode","105100000017");
//
// dto.put("timestamp",System.currentTimeMillis());
//
// JSONObject jsonObject = juHeZhongPayJFenService.merchantAddFeel(dto);
// System.out.println(jsonObject);
/** /**
* 。。。。。。openCardCallback回调。。。。。 * 。。。。。。openCardCallback回调。。。。。
swpaccid=swpaccid swpaccid=swpaccid
...@@ -218,8 +257,8 @@ public class JuHeZhongPayJFenService { ...@@ -218,8 +257,8 @@ public class JuHeZhongPayJFenService {
2018-04-13 11:41:10,939 DEBUG [jeesite.modules.sys.interceptor.LogInterceptor] - 计时结束:11:41:10.939 耗时:0:0:0.37 URI: /youka-api/api/pay/openCardCallback 最大内存: 1739m 已分配内存: 743m 已分配内存中的剩余空间: 145m 最大可用内存: 1141m 2018-04-13 11:41:10,939 DEBUG [jeesite.modules.sys.interceptor.LogInterceptor] - 计时结束:11:41:10.939 耗时:0:0:0.37 URI: /youka-api/api/pay/openCardCallback 最大内存: 1739m 已分配内存: 743m 已分配内存中的剩余空间: 145m 最大可用内存: 1141m
*/ */
// System.out.println(dto.toJSONString()); // System.out.println(dto.toJSONString());
// juHeZhongPayJFenService.openCard(dto); // JSONObject json = juHeZhongPayJFenService.openCard(dto);
// System.out.println(json);
// dto.put("orderId",MakeOrderNum.makeOrderNum()); // dto.put("orderId",MakeOrderNum.makeOrderNum());
...@@ -236,7 +275,7 @@ public class JuHeZhongPayJFenService { ...@@ -236,7 +275,7 @@ public class JuHeZhongPayJFenService {
// dto.put("mobile","13821934497"); // dto.put("mobile","13821934497");
// dto.put("swpaccid","3296555230614091180"); // dto.put("swpaccid","3296555230614091180");
// //
// dto.put("notifyUrl","http://39.107.124.166:8080/youka-api/api/pay/openCardCallback"); // dto.put("notifyUrl","http://youkapay:8080/youka-api/api/pay/openCardCallback");
// dto.put("amount","1000"); // dto.put("amount","1000");
// juHeZhongPayJFenService.openCard(dto); // juHeZhongPayJFenService.openCard(dto);
// trade_no 20180413135023288124 // trade_no 20180413135023288124
......
...@@ -2,15 +2,18 @@ package com.thinkgem.jeesite.modules.pay.juhezhong.service; ...@@ -2,15 +2,18 @@ package com.thinkgem.jeesite.modules.pay.juhezhong.service;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.thinkgem.jeesite.common.constant.ComCode; import com.thinkgem.jeesite.common.constant.ComCode;
import com.thinkgem.jeesite.common.utils.IdGen;
import com.thinkgem.jeesite.common.utils.JuhezhongUtils; import com.thinkgem.jeesite.common.utils.JuhezhongUtils;
import com.thinkgem.jeesite.modules.pay.juhezhong.dto.*; import com.thinkgem.jeesite.modules.pay.juhezhong.dto.*;
import com.thinkgem.jeesite.modules.pay.juhezhong.utils.Bean2Map; import com.thinkgem.jeesite.modules.pay.juhezhong.utils.Bean2Map;
import com.thinkgem.jeesite.modules.pay.juhezhong.utils.HttpUtil; import com.thinkgem.jeesite.modules.pay.juhezhong.utils.HttpUtil;
import com.thinkgem.jeesite.modules.pay.juhezhong.utils.MakeOrderNum;
import com.thinkgem.jeesite.modules.pay.juhezhong.utils.SignUtils; import com.thinkgem.jeesite.modules.pay.juhezhong.utils.SignUtils;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Map; import java.util.Map;
/** /**
...@@ -139,8 +142,27 @@ public JSONObject quickWebPay ( JuhezhongDto dto ) throws Exception { ...@@ -139,8 +142,27 @@ public JSONObject quickWebPay ( JuhezhongDto dto ) throws Exception {
String respStr = HttpUtil.post(ComCode.HOST + ComCode.NO_INTEGRAL_QUICK_PAY_URL, params); String respStr = HttpUtil.post(ComCode.HOST + ComCode.NO_INTEGRAL_QUICK_PAY_URL, params);
return JSONObject.parseObject(respStr); return JSONObject.parseObject(respStr);
} }
public JSONObject quickPay(JuhezhongDto dto) throws Exception {
Map<String, Object> params = Bean2Map.Entity2Map(dto);
System.out.println(params);
String signBefore = SignUtils.signBefore(params);
System.out.println(signBefore);
String sign = SignUtils.sign(signBefore, ComCode.MERCHANT_SECRET);
System.out.println("sign2:"+sign);
params.put("sign", sign);
String respStr = HttpUtil.post(ComCode.HOST + ComCode.NO_INTEGRAL_QUICK_PAY_URL, params);
return JSONObject.parseObject(respStr);
}
public JSONObject quickPay(JSONObject dto)throws Exception{
String signBefore = SignUtils.signBefore(dto);
System.out.println(signBefore);
String sign = SignUtils.sign(signBefore, ComCode.MERCHANT_SECRET);
System.out.println("sign:"+sign);
dto.put("sign", sign);
String respStr = HttpUtil.post(ComCode.HOST + ComCode.NO_INTEGRAL_QUICK_PAY_URL, dto);
return JSONObject.parseObject(respStr);
}
/** /**
* 查询订单状态 * 查询订单状态
...@@ -176,12 +198,83 @@ public JSONObject quickWebPay ( JuhezhongDto dto ) throws Exception { ...@@ -176,12 +198,83 @@ public JSONObject quickWebPay ( JuhezhongDto dto ) throws Exception {
} }
public static void main (String[] args ) throws Exception { public static void main (String[] args ) throws Exception {
// JuhezhongDto dto = new JuhezhongDto();
// dto.setOrderId(MakeOrderNum.makeOrderNum());//非订单号
// dto.setMerchantId(ComCode.MERCHANT_ID);//商户号
//
// dto.setAmount(10000);//订单金额,单位是分
// dto.setTrxType(3);//交易类型,默认传3
// dto.setType(6);//5 借记卡 只能 D0 6 贷记卡 D0 t1
// dto.setBankNo("6217000066011457475");//支付卡号
// dto.setCvn2("065");//安全码
// dto.setPhone("15902202472");//支付卡预留手机号
// dto.setExpired("0528");//信用卡有效期(MMYY)
// dto.setUserFee(200);//手续费 单位:分 ,D0 业务必传
// if(dto.getType() == 6){
//
// dto.setSettleBankName("建设银行");//结算银行 D0 业务必传
// dto.setSettleBankNo("6217000066011457475");//一个身份证只能对应一个结算卡 D0 业务必传
// dto.setSettleBankPhone("13821934497");//结算卡预留手机号 D0 业务必传
// dto.setName("李波");//开户名 D0 业务必传
// dto.setCertificateCode("53250219850831031X");//开户人身份证号 D0 业务必传
// }
// dto.setMerchantKey(ComCode.MERCHANT_KEY);
// dto.setNotifyUrl("http://youkapay.com:8080/youka-api/api/pay/notifyQuickPay");//通知url
// dto.setFrontUrl("http://youkapay.com:8080/youka-api/api/pay/notifyQuickPay");//前台地址url(保留)
// dto.setTimestamp(System.currentTimeMillis());
// System.out.println(new JuHeZhongPayService().quickBPay(dto));
// String order = MakeOrderNum.makeOrderNum();
// JSONObject dto=new JSONObject();
// dto.put("orderId",order);//订单号
// dto.put("merchantId",ComCode.MERCHANT_ID);//商户号
// dto.put("amount",1000L);//交易金额 单位 分
// dto.put("trxType",3);//交易类型 默认2 T1(2,"T1"), D0(3,"D0");
// dto.put("type",6);// 5 借记卡 只能 d0 6 贷记卡 t1 d0
// dto.put("bankNo","6282161411286681");//支付卡号
// dto.put("cvn2","913");//支付卡号
// dto.put("expired","0421");//支付卡号
// dto.put("phone","15902202472");//支付卡预留手机号
// dto.put("userFee",200);//手续费 单位分
// if(dto.getInteger("type")==6){
// dto.put("settleBankName","建设银行");//结算银行
// dto.put("settleBankNo","6217000066011457475");//结算卡号
// dto.put("settleBankPhone","15902202472");//结算卡预留手机号
// dto.put("name","唐挺");//结算账户
// dto.put("certificateCode","510623198809184419");//身份证号
//
// }
// dto.put("merchantKey",ComCode.MERCHANT_KEY);//商户key
// dto.put("notifyUrl","http://youkapay.com:8080/youka-api/api/pay/notifyQuickPay");//通知url
// dto.put("frontUrl","http://youkapay.com:8080/youka-api/api/pay/notifyQuickPay");//通知url
// dto.put("timestamp",System.currentTimeMillis());//时间戳
// System.out.println(new JuHeZhongPayService().quickPay(dto));
//查询订单
JuhezhongDto a = new JuhezhongDto ( ); JuhezhongDto a = new JuhezhongDto ( );
a.setOrderId ( "Dy58WqJG3MmNpSpQMq3wKZV55OiO48asPzRp4YUBBZUsVEiow7q6CZTQqwrBTl4k" ); a.setOrderId ( "20180606105801173000" );
a.setMerchantId ( ComCode.MERCHANT_ID ); a.setMerchantId ( ComCode.MERCHANT_ID );
a.setMerchantKey ( ComCode.MERCHANT_KEY ); a.setMerchantKey ( ComCode.MERCHANT_KEY );
a.setTimestamp ( System.currentTimeMillis ( ) ); a.setTimestamp ( System.currentTimeMillis ( ) );
System.out.println ( "Json格式:" + new JuHeZhongPayService ( ).orderQuery ( a ) ); System.out.println ( "Json格式:" + new JuHeZhongPayService ( ).orderQuery ( a ) );
// MerchantDto dto = new MerchantDto();
// dto.setMerchantId(ComCode.MERCHANT_ID);
// dto.setOrderId(IdGen.uuid());//不会产生交易订单
// dto.setIdType("01"); // 根据文档说明,证件类型固定为01
// dto.setAccName("唐挺");
// dto.setAccType(1);//1 对私 2对公
// dto.setAccNo("6217000060031684713");
// dto.setAccProvince("天津市");
// dto.setAccCity("天津");
// dto.setBankCode("建设银行");
// dto.setMobile("15902202472");
// dto.setIdNo("6217000066011457475");
// dto.setSettleRate(new BigDecimal(0));
// dto.setExtraRate(new BigDecimal(ComCode.EXTRA_RATE));
// dto.setTimestamp(System.currentTimeMillis());
// dto.setMerchantKey(ComCode.MERCHANT_KEY);
// System.out.println("结果:"+new JuHeZhongPayService().register(dto));
} }
// public static void main (String[] args) throws Exception { // public static void main (String[] args) throws Exception {
......
...@@ -14,8 +14,7 @@ import com.thinkgem.jeesite.modules.pay.alipay.service.AlipayService; ...@@ -14,8 +14,7 @@ import com.thinkgem.jeesite.modules.pay.alipay.service.AlipayService;
import com.thinkgem.jeesite.modules.pay.dao.PayApiDao; import com.thinkgem.jeesite.modules.pay.dao.PayApiDao;
import com.thinkgem.jeesite.modules.pay.entity.*; import com.thinkgem.jeesite.modules.pay.entity.*;
import com.thinkgem.jeesite.modules.pay.huanqiuhuiju.service.HuanqiuhuijuService; import com.thinkgem.jeesite.modules.pay.huanqiuhuiju.service.HuanqiuhuijuService;
import com.thinkgem.jeesite.modules.pay.juhezhong.dto.PayBackDto; import com.thinkgem.jeesite.modules.pay.juhezhong.dto.*;
import com.thinkgem.jeesite.modules.pay.juhezhong.dto.QuickDto;
import com.thinkgem.jeesite.modules.pay.juhezhong.service.JuHeZhongPayIntegralService; import com.thinkgem.jeesite.modules.pay.juhezhong.service.JuHeZhongPayIntegralService;
import com.thinkgem.jeesite.modules.pay.juhezhong.service.JuHeZhongPayJFenService; import com.thinkgem.jeesite.modules.pay.juhezhong.service.JuHeZhongPayJFenService;
import com.thinkgem.jeesite.modules.pay.juhezhong.service.JuHeZhongPayService; import com.thinkgem.jeesite.modules.pay.juhezhong.service.JuHeZhongPayService;
...@@ -23,6 +22,7 @@ import com.thinkgem.jeesite.modules.pay.juhezhong.utils.MakeOrderNum; ...@@ -23,6 +22,7 @@ import com.thinkgem.jeesite.modules.pay.juhezhong.utils.MakeOrderNum;
import com.thinkgem.jeesite.modules.pay.pinganbank.PingAnBankService; import com.thinkgem.jeesite.modules.pay.pinganbank.PingAnBankService;
import com.thinkgem.jeesite.modules.pay.pinganbank.dto.PingAnBankDto; import com.thinkgem.jeesite.modules.pay.pinganbank.dto.PingAnBankDto;
import com.thinkgem.jeesite.modules.sys.entity.Dict; import com.thinkgem.jeesite.modules.sys.entity.Dict;
import com.thinkgem.jeesite.modules.sys.service.SystemService;
import com.thinkgem.jeesite.modules.sys.utils.DictUtils; import com.thinkgem.jeesite.modules.sys.utils.DictUtils;
import com.thinkgem.jeesite.modules.user.bean.JuHeZhongPayRequest; import com.thinkgem.jeesite.modules.user.bean.JuHeZhongPayRequest;
import com.thinkgem.jeesite.modules.user.bean.UserRequest; import com.thinkgem.jeesite.modules.user.bean.UserRequest;
...@@ -30,15 +30,16 @@ import com.thinkgem.jeesite.modules.user.entity.*; ...@@ -30,15 +30,16 @@ import com.thinkgem.jeesite.modules.user.entity.*;
import com.thinkgem.jeesite.modules.user.service.UserApiService; import com.thinkgem.jeesite.modules.user.service.UserApiService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.core.annotation.Order;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.Date; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* 支付相关 * 支付相关
...@@ -88,7 +89,6 @@ public class PayApiService { ...@@ -88,7 +89,6 @@ public class PayApiService {
payBackDto.setIsUrl("0"); payBackDto.setIsUrl("0");
return payBackDto; return payBackDto;
} }
// 1. 根据入参获取用户详情信息,包括支付卡片信息 // 1. 根据入参获取用户详情信息,包括支付卡片信息
UserEntity userEntity = userService.getUserInfo(new Request(request.getSubMerchantCode())); UserEntity userEntity = userService.getUserInfo(new Request(request.getSubMerchantCode()));
userEntity = userService.getUserDetailInfo(userEntity); userEntity = userService.getUserDetailInfo(userEntity);
...@@ -107,32 +107,34 @@ public class PayApiService { ...@@ -107,32 +107,34 @@ public class PayApiService {
PayBackDto payBackDto = new PayBackDto(); PayBackDto payBackDto = new PayBackDto();
if(ComCode.PAYCHANNEL_HL1.equals(request.getPayChannel())){ if(ComCode.PAYCHANNEL_HL1.equals(request.getPayChannel())){
OrderEntity orderEntity = new OrderEntity(code, request.getSubMerchantCode(), payNo, payCode,"quick", request.getPayChannel(), "1",amount , request.getSubject(), "", String.valueOf("D".equalsIgnoreCase(userEntity.getUserDetail().getCard().getCardType()) ? 5 : ("C".equalsIgnoreCase(userEntity.getUserDetail().getCard().getCardType()) ? 6 : 0)), request.getCardCode()); OrderEntity orderEntity = new OrderEntity(code, request.getSubMerchantCode(), payNo, payCode,"quick", request.getPayChannel(), "1",amount , request.getSubject(), "", String.valueOf("D".equalsIgnoreCase(userEntity.getUserDetail().getCard().getCardType()) ? 5 : ("C".equalsIgnoreCase(userEntity.getUserDetail().getCard().getCardType()) ? 6 : 0)), request.getCardCode());
payDao.saveOrderInfo(orderEntity); addUserBenefits(userEntity,orderEntity,code,request);
// 3. 创建分润信息,并保存 // payDao.saveOrderInfo(orderEntity);
Map<String, String> userBenefits = getUserBenefit(userEntity, request); // // 3. 创建分润信息,并保存
for (String key : userBenefits.keySet()) { // Map<String, String> userBenefits = getUserBenefit(userEntity, request);
String benefitCode = IdGen.randomBase62(64); // for (String key : userBenefits.keySet()) {
BenefitEntity benefitEntity = new BenefitEntity(benefitCode, request.getSubMerchantCode(), code, request.getPayChannel(), "0", "A", userBenefits.get(key), ""); // String benefitCode = IdGen.randomBase62(64);
benefitEntity.setAmount(String.valueOf(Double.valueOf(benefitEntity.getAmount()))); // BenefitEntity benefitEntity = new BenefitEntity(benefitCode, request.getSubMerchantCode(), code, request.getPayChannel(), "0", "A", userBenefits.get(key), "");
benefitEntity.setPayMethod(orderEntity.getPayMethod()); // benefitEntity.setAmount(String.valueOf(Double.valueOf(benefitEntity.getAmount())));
payDao.saveBenefitInfo(benefitEntity); // benefitEntity.setPayMethod(orderEntity.getPayMethod());
} // payDao.saveBenefitInfo(benefitEntity);
// }
// 获取支付卡号 // 获取支付卡号
CardEntity cardEntityPay = userService.getCardInfo(request); CardEntity cardEntityPay = userService.getCardInfo(request);
payBackDto = quickPayJuHeZhongPay(userEntity, orderEntity, request,cardEntityPay); payBackDto = this.payJuhezhong(request, userEntity, orderEntity,cardEntityPay);
}else if(ComCode.PAYCHANNEL_HL3.equals(request.getPayChannel())){ }else if(ComCode.PAYCHANNEL_HL3.equals(request.getPayChannel())){
OrderEntity orderEntity = new OrderEntity(code, request.getSubMerchantCode(), payNo, payCode,"quick", request.getPayChannel(), "1",amount , request.getSubject(), "", String.valueOf("D".equalsIgnoreCase(userEntity.getUserDetail().getCard().getCardType()) ? 5 : ("C".equalsIgnoreCase(userEntity.getUserDetail().getCard().getCardType()) ? 6 : 0)), request.getCardCode()); OrderEntity orderEntity = new OrderEntity(code, request.getSubMerchantCode(), payNo, payCode,"quick", request.getPayChannel(), "1",amount , request.getSubject(), "", String.valueOf("D".equalsIgnoreCase(userEntity.getUserDetail().getCard().getCardType()) ? 5 : ("C".equalsIgnoreCase(userEntity.getUserDetail().getCard().getCardType()) ? 6 : 0)), request.getCardCode());
payDao.saveOrderInfo(orderEntity); addUserBenefits(userEntity,orderEntity,code,request);
// 3. 创建分润信息,并保存 // payDao.saveOrderInfo(orderEntity);
Map<String, String> userBenefits = getUserBenefit(userEntity, request); // // 3. 创建分润信息,并保存
for (String key : userBenefits.keySet()) { // Map<String, String> userBenefits = getUserBenefit(userEntity, request);
String benefitCode = IdGen.randomBase62(64); // for (String key : userBenefits.keySet()) {
BenefitEntity benefitEntity = new BenefitEntity(benefitCode, request.getSubMerchantCode(), code, request.getPayChannel(), "0", "A", userBenefits.get(key), ""); // String benefitCode = IdGen.randomBase62(64);
benefitEntity.setAmount(String.valueOf(Double.valueOf(benefitEntity.getAmount()))); // BenefitEntity benefitEntity = new BenefitEntity(benefitCode, request.getSubMerchantCode(), code, request.getPayChannel(), "0", "A", userBenefits.get(key), "");
benefitEntity.setPayMethod(orderEntity.getPayMethod()); // benefitEntity.setAmount(String.valueOf(Double.valueOf(benefitEntity.getAmount())));
payDao.saveBenefitInfo(benefitEntity); // benefitEntity.setPayMethod(orderEntity.getPayMethod());
} // payDao.saveBenefitInfo(benefitEntity);
// }
// 获取支付卡号 // 获取支付卡号
CardEntity cardEntityPay = userService.getCardInfo(request); CardEntity cardEntityPay = userService.getCardInfo(request);
...@@ -146,16 +148,17 @@ public class PayApiService { ...@@ -146,16 +148,17 @@ public class PayApiService {
}else if(ComCode.PAYCHANNEL_HUANQIUHUIJU.equals(request.getPayChannel())){ }else if(ComCode.PAYCHANNEL_HUANQIUHUIJU.equals(request.getPayChannel())){
OrderEntity orderEntity = new OrderEntity(code, request.getSubMerchantCode(), payNo, payCode,"quick", request.getPayChannel(), "1",amount , request.getSubject(), "", String.valueOf("D".equalsIgnoreCase(userEntity.getUserDetail().getCard().getCardType()) ? 5 : ("C".equalsIgnoreCase(userEntity.getUserDetail().getCard().getCardType()) ? 6 : 0)), request.getCardCode()); OrderEntity orderEntity = new OrderEntity(code, request.getSubMerchantCode(), payNo, payCode,"quick", request.getPayChannel(), "1",amount , request.getSubject(), "", String.valueOf("D".equalsIgnoreCase(userEntity.getUserDetail().getCard().getCardType()) ? 5 : ("C".equalsIgnoreCase(userEntity.getUserDetail().getCard().getCardType()) ? 6 : 0)), request.getCardCode());
payDao.saveOrderInfo(orderEntity); addUserBenefits(userEntity,orderEntity,code,request);
// 3. 创建分润信息,并保存 // payDao.saveOrderInfo(orderEntity);
Map<String, String> userBenefits = getUserBenefit(userEntity, request); // // 3. 创建分润信息,并保存
for (String key : userBenefits.keySet()) { // Map<String, String> userBenefits = getUserBenefit(userEntity, request);
String benefitCode = IdGen.randomBase62(64); // for (String key : userBenefits.keySet()) {
BenefitEntity benefitEntity = new BenefitEntity(benefitCode, request.getSubMerchantCode(), code, request.getPayChannel(), "0", "A", userBenefits.get(key), ""); // String benefitCode = IdGen.randomBase62(64);
benefitEntity.setAmount(String.valueOf(Double.valueOf(benefitEntity.getAmount()))); // BenefitEntity benefitEntity = new BenefitEntity(benefitCode, request.getSubMerchantCode(), code, request.getPayChannel(), "0", "A", userBenefits.get(key), "");
benefitEntity.setPayMethod(orderEntity.getPayMethod()); // benefitEntity.setAmount(String.valueOf(Double.valueOf(benefitEntity.getAmount())));
payDao.saveBenefitInfo(benefitEntity); // benefitEntity.setPayMethod(orderEntity.getPayMethod());
} // payDao.saveBenefitInfo(benefitEntity);
// }
// 获取支付卡号 // 获取支付卡号
CardEntity cardEntityPay = userService.getCardInfo(request); CardEntity cardEntityPay = userService.getCardInfo(request);
...@@ -163,16 +166,17 @@ public class PayApiService { ...@@ -163,16 +166,17 @@ public class PayApiService {
payBackDto = this.huanqiuhujuPay(userEntity, orderEntity, request,cardEntityPay); payBackDto = this.huanqiuhujuPay(userEntity, orderEntity, request,cardEntityPay);
}else { }else {
OrderEntity orderEntity = new OrderEntity(code, request.getSubMerchantCode(), payNo, payCode,"quick", ComCode.PAYCHANNEL_HL3, "1",amount , request.getSubject(), "", String.valueOf("D".equalsIgnoreCase(userEntity.getUserDetail().getCard().getCardType()) ? 5 : ("C".equalsIgnoreCase(userEntity.getUserDetail().getCard().getCardType()) ? 6 : 0)), request.getCardCode()); OrderEntity orderEntity = new OrderEntity(code, request.getSubMerchantCode(), payNo, payCode,"quick", ComCode.PAYCHANNEL_HL3, "1",amount , request.getSubject(), "", String.valueOf("D".equalsIgnoreCase(userEntity.getUserDetail().getCard().getCardType()) ? 5 : ("C".equalsIgnoreCase(userEntity.getUserDetail().getCard().getCardType()) ? 6 : 0)), request.getCardCode());
payDao.saveOrderInfo(orderEntity); addUserBenefits(userEntity,orderEntity,code,request);
// 3. 创建分润信息,并保存 // payDao.saveOrderInfo(orderEntity);
Map<String, String> userBenefits = getUserBenefit(userEntity, request); // // 3. 创建分润信息,并保存
for (String key : userBenefits.keySet()) { // Map<String, String> userBenefits = getUserBenefit(userEntity, request);
String benefitCode = IdGen.randomBase62(64); // for (String key : userBenefits.keySet()) {
BenefitEntity benefitEntity = new BenefitEntity(benefitCode, request.getSubMerchantCode(), code, request.getPayChannel(), "0", "A", userBenefits.get(key), ""); // String benefitCode = IdGen.randomBase62(64);
benefitEntity.setAmount(String.valueOf(Double.valueOf(benefitEntity.getAmount()))); // BenefitEntity benefitEntity = new BenefitEntity(benefitCode, request.getSubMerchantCode(), code, request.getPayChannel(), "0", "A", userBenefits.get(key), "");
benefitEntity.setPayMethod(orderEntity.getPayMethod()); // benefitEntity.setAmount(String.valueOf(Double.valueOf(benefitEntity.getAmount())));
payDao.saveBenefitInfo(benefitEntity); // benefitEntity.setPayMethod(orderEntity.getPayMethod());
} // payDao.saveBenefitInfo(benefitEntity);
// }
// 获取支付卡号 // 获取支付卡号
CardEntity cardEntityPay = userService.getCardInfo(request); CardEntity cardEntityPay = userService.getCardInfo(request);
...@@ -190,6 +194,25 @@ public class PayApiService { ...@@ -190,6 +194,25 @@ public class PayApiService {
} }
/**
* 共用的分润信息
* @param userEntity
* @param orderEntity
* @param code
* @param request
*/
private void addUserBenefits(UserEntity userEntity, OrderEntity orderEntity, String code ,JuHeZhongPayRequest request){
payDao.saveOrderInfo(orderEntity);
// 3. 创建分润信息,并保存
Map<String, String> userBenefits = getUserBenefit(userEntity, request);
for (String key : userBenefits.keySet()) {
String benefitCode = IdGen.randomBase62(64);
BenefitEntity benefitEntity = new BenefitEntity(benefitCode, request.getSubMerchantCode(), code, request.getPayChannel(), "0", "A", userBenefits.get(key), "");
benefitEntity.setAmount(String.valueOf(Double.valueOf(benefitEntity.getAmount())));
benefitEntity.setPayMethod(orderEntity.getPayMethod());
payDao.saveBenefitInfo(benefitEntity);
}
}
/* /*
* 以下为类内使用方法 * 以下为类内使用方法
...@@ -568,7 +591,6 @@ public class PayApiService { ...@@ -568,7 +591,6 @@ public class PayApiService {
userSubMchId = userService.getUserSubmchid(userSubMchId); userSubMchId = userService.getUserSubmchid(userSubMchId);
UserEntity userEntity = userService.getUserInfo(request); UserEntity userEntity = userService.getUserInfo(request);
UserDetailEntity userDetailEntity = userService.getUserDetailByCode(request.getSubMerchantCode()); UserDetailEntity userDetailEntity = userService.getUserDetailByCode(request.getSubMerchantCode());
userDetailEntity.setCard ( cardEntity );
userEntity.setUserDetail(userDetailEntity); userEntity.setUserDetail(userDetailEntity);
// 2. 创建支付订单信息,并保存 // 2. 创建支付订单信息,并保存
...@@ -577,21 +599,20 @@ public class PayApiService { ...@@ -577,21 +599,20 @@ public class PayApiService {
String payCode = IdGen.randomBase62(64); String payCode = IdGen.randomBase62(64);
DecimalFormat df = new DecimalFormat("######0.00"); DecimalFormat df = new DecimalFormat("######0.00");
String amount = df.format(Double.valueOf(request.getAmount())); String amount = df.format(Double.valueOf(request.getAmount()));
OrderEntity orderEntity = new OrderEntity ( code , request.getSubMerchantCode ( ) , payNo , payCode , "quick" , request.getPayChannel ( ) , "1" , amount , OrderEntity orderEntity = new OrderEntity(code, request.getSubMerchantCode(), payNo, payCode,"quick", request.getPayChannel(), "1",amount , request.getSubject(), "", String.valueOf("D".equalsIgnoreCase(userDetailEntity.getCard().getCardType()) ? 5 : ("C".equalsIgnoreCase(userDetailEntity.getCard().getCardType()) ? 6 : 0)), request.getCardCode());
request.getSubject ( ) , "" ,
String.valueOf ( "D".equalsIgnoreCase ( userDetailEntity.getCard ( ).getCardType ( ) ) ? 5 : ( "C".equalsIgnoreCase ( userDetailEntity.getCard ( ).getCardType ( ) ) ? 6 : 0 ) ) , //3. 分润信息
request.getCardCode ( ) ); addUserBenefits(userEntity,orderEntity,code,request);
// payDao.saveOrderInfo(orderEntity);
payDao.saveOrderInfo(orderEntity); // // 3. 创建分润信息,并保存
// 3. 创建分润信息,并保存 // Map<String, String> userBenefits = getUserBenefit(userEntity, request);
Map<String, String> userBenefits = getUserBenefit(userEntity, request); // for (String key : userBenefits.keySet()) {
for (String key : userBenefits.keySet()) { // String benefitCode = IdGen.randomBase62(64);
String benefitCode = IdGen.randomBase62(64); // BenefitEntity benefitEntity = new BenefitEntity(benefitCode, request.getSubMerchantCode(), code, request.getPayChannel(), "0", "A", userBenefits.get(key), "");
BenefitEntity benefitEntity = new BenefitEntity(benefitCode, request.getSubMerchantCode(), code, request.getPayChannel(), "0", "A", userBenefits.get(key), ""); // benefitEntity.setAmount(String.valueOf(Double.valueOf(benefitEntity.getAmount())));
benefitEntity.setAmount(String.valueOf(Double.valueOf(benefitEntity.getAmount()))); // benefitEntity.setPayMethod(orderEntity.getPayMethod());
benefitEntity.setPayMethod(orderEntity.getPayMethod()); // payDao.saveBenefitInfo(benefitEntity);
payDao.saveBenefitInfo(benefitEntity); // }
}
Response response = new Response(); Response response = new Response();
JSONObject dto = new JSONObject(); JSONObject dto = new JSONObject();
...@@ -610,8 +631,7 @@ public class PayApiService { ...@@ -610,8 +631,7 @@ public class PayApiService {
dto.put("swpaccid",cardEntity.getSwpaccid()); dto.put("swpaccid",cardEntity.getSwpaccid());
dto.put("notifyUrl",Global.getConfig("project.access.url")+"/api/pay/openCardCallback"); dto.put("notifyUrl",Global.getConfig("project.access.url")+"/api/pay/openCardCallback");
try { try {
//调用验证码 JSONObject jsonObject = juHeZhongPayJFenService.openCard(dto);
JSONObject jsonObject = juHeZhongPayIntegralService.quickPayHandle ( dto );
if("0000".equals(jsonObject.get("code"))){ if("0000".equals(jsonObject.get("code"))){
orderEntity.setTradeNo(jsonObject.getString("trade_no")); orderEntity.setTradeNo(jsonObject.getString("trade_no"));
payDao.updateOrderTradeNo(orderEntity); payDao.updateOrderTradeNo(orderEntity);
...@@ -648,54 +668,8 @@ public class PayApiService { ...@@ -648,54 +668,8 @@ public class PayApiService {
// 如果没有注册 则先注册 // 如果没有注册 则先注册
if(userSubMchId == null){ if(userSubMchId == null){
throw new MyException("未开卡,请先开卡"); throw new MyException("未开卡,请先开卡");
// UserEntity userEntity = userService.getUserInfo(request);
// UserDetailEntity userDetailEntity = userService.getUserDetailByCode(request.getSubMerchantCode());
// CardEntity cardEntityDebit = userService.getCardInfoByCode(userEntity);
// JSONObject dto = new JSONObject();
//
// String orderId = MakeOrderNum.makeOrderNum();
//
// dto.put("orderId", MakeOrderNum.makeOrderNum());
//
// dto.put("serviceType",1);
// dto.put("subMerchantName",userDetailEntity.getRealName()+orderId);
// dto.put("subMerchantType","PERSON");
// dto.put("businessLicense",userDetailEntity.getRealName()+orderId);
// dto.put("legalPersonName",userDetailEntity.getRealName());
// dto.put("legalPersonID",userDetailEntity.getIdCard());
// dto.put("subMerchantPersonName",userDetailEntity.getRealName());
// dto.put("subMerchantPersonPhone",userEntity.getMobile());
// dto.put("bankType","TOPRIVATE");
//
// dto.put("accountName",userDetailEntity.getRealName());
// dto.put("accountNo",cardEntityDebit.getCardNo());
// dto.put("bankName",cardEntityDebit.getBankName());
// dto.put("bankProv",cardEntityDebit.getProvince());
// dto.put("bankCity",cardEntityDebit.getCity());
// dto.put("bankBranch",cardEntityDebit.getCardPlace());
// dto.put("bankCode",cardEntityDebit.getBelongBank());
//
// dto.put("timestamp",System.currentTimeMillis());
//
// JSONObject jsonObject = null;
// try {
// jsonObject = juHeZhongPayJFenService.merchantIn(dto);
// } catch (Exception e) {
//
// }
// if (!"0000".equals(jsonObject.getString("code"))) {
// new MyException(jsonObject.getString("msg"));
// }
// String subMchId = jsonObject.getString("subMchId");
// userSubMchId = new UserSubMchId();
// userSubMchId.setUserCode(request.getSubMerchantCode());
// userSubMchId.setPayChannel(ComCode.PAYCHANNEL_HL2);
// userSubMchId.setSubmchid(subMchId);
// userService.addUserSubmchid(userSubMchId);
} }
// if(){
//
// }
OrderEntity orderEntity = this.getOrder(request.getPayNo()); OrderEntity orderEntity = this.getOrder(request.getPayNo());
PayBackDto payBackDto = new PayBackDto(); PayBackDto payBackDto = new PayBackDto();
...@@ -717,18 +691,64 @@ public class PayApiService { ...@@ -717,18 +691,64 @@ public class PayApiService {
JSONObject jsonObject = juHeZhongPayJFenService.openCard(dto); JSONObject jsonObject = juHeZhongPayJFenService.openCard(dto);
this.notifyPay(orderEntity); this.notifyPay(orderEntity);
payBackDto.setMessage(jsonObject.getString("msg"));
if("0000".equals(jsonObject.get("code"))){ if("0000".equals(jsonObject.get("code"))){
payBackDto.setMessage(jsonObject.getString("msg"));
return payBackDto; return payBackDto;
}else{ }else{
payBackDto.setMessage(jsonObject.getString("msg"));
throw new MyException(jsonObject.getString("msg")); throw new MyException(jsonObject.getString("msg"));
} }
} }
// HL4 通道
@Transactional(readOnly = false)
public PayBackDto payJuhezhong (JuHeZhongPayRequest request,UserEntity userEntity,OrderEntity orderEntity,CardEntity cardEntity) throws Exception {
//通过用户code获取user_detail表中数据
UserDetailEntity userDetail = userService.getUserDetailByCode(userEntity.getCode());
PayBackDto payBackDto = new PayBackDto();
payBackDto.setIsUrl("0");
//获取结算卡信息
CardEntity cardEntityDebit = userService.getCardInfoByCode(userEntity);
JuhezhongDto dto = new JuhezhongDto();
dto.setOrderId(MakeOrderNum.makeOrderNum());//非订单号
dto.setMerchantId(ComCode.MERCHANT_ID);//商户号
dto.setMerchantKey(ComCode.MERCHANT_KEY);
dto.setAmount(Integer.valueOf(orderEntity.getAmount())*100);//订单金额,单位为分
dto.setTrxType(3);//交易类型,默认传3
dto.setType(cardEntity.getCardType().equals("D")?6:5);//5 借记卡 只能 D0 6 贷记卡 D0 t1 ,表中 银行卡类型 D储蓄卡 C信用卡'
dto.setBankNo(cardEntity.getCardNo());//支付卡号
dto.setCvn2(request.getCvn2());//安全码
dto.setPhone(cardEntity.getCardMobile());//支付卡预留手机号
dto.setExpired(request.getExpireDate());//信用卡有效期(MMYY)
dto.setUserFee(Integer.valueOf(ComCode.EXTRA_RATE));//手续费 单位:分 ,D0 业务必传,商家约定
if(cardEntity.getCardType().equals("D")){
if(cardEntityDebit == null){
throw new MyException("还没有结算卡!");
}
dto.setSettleBankName(cardEntityDebit.getBankName());//结算银行 D0 业务必传
dto.setSettleBankNo(cardEntityDebit.getCardNo());//一个身份证只能对应一个结算卡 D0 业务必传
dto.setSettleBankPhone(cardEntityDebit.getCardMobile());//结算卡预留手机号 D0 业务必传
dto.setName(userDetail.getRealName());//开户名 D0 业务必传
dto.setCertificateCode(userDetail.getIdCard());//开户人身份证号 D0 业务必传
}
dto.setNotifyUrl(ComCode.NOTIFY_CALLBACK_URL);//通知url
dto.setFrontUrl(ComCode.NOTIFY_CALLBACK_URL);//前台地址url(保留)
dto.setTimestamp(System.currentTimeMillis());
JSONObject jsonObject = juHeZhongPayService.quickPay(dto);
this.notifyPay(orderEntity);
payBackDto.setMessage(jsonObject.getString("msg"));
if("0000".equals(jsonObject.get("code"))){
return payBackDto;
}else{
throw new MyException(jsonObject.getString("msg"));
}
}
/** /**
* huanqiuhuiju 快捷支付 * huanqiuhuiju 快捷支付
* @param request * @param request
...@@ -776,12 +796,7 @@ public class PayApiService { ...@@ -776,12 +796,7 @@ public class PayApiService {
this.notifyPay(orderEntity); this.notifyPay(orderEntity);
return payBackDto; return payBackDto;
}else{ }else{
orderEntity.setPayStatus("4"); orderFail(orderEntity);
payDao.updateOrderStatus(orderEntity);
BenefitEntity benefitEntity = new BenefitEntity();
benefitEntity.setOrderCode(orderEntity.getPayCode());
benefitEntity.setDelFlag("1");
payDao.deleteBenefit(benefitEntity);
throw new MyException(jsonObject.getString("errtext")); throw new MyException(jsonObject.getString("errtext"));
} }
...@@ -959,7 +974,7 @@ public class PayApiService { ...@@ -959,7 +974,7 @@ public class PayApiService {
}else if(ComCode.PAYCHANNEL_HL2.equals(orderEntity.getPayChannel())){ }else if(ComCode.PAYCHANNEL_HL2.equals(orderEntity.getPayChannel())){
dto.setMerchantId(ComCode.JFEN_MERCHANT_ID); dto.setMerchantId(ComCode.JFEN_MERCHANT_ID);
dto.setMerchantKey(ComCode.JFEN_MERCHANT_KEY); dto.setMerchantKey(ComCode.JFEN_MERCHANT_KEY);
jsonObject = juHeZhongPayService.query(dto); jsonObject = juHeZhongPayJFenService.query(dto);
}else if(ComCode.PAYCHANNEL_HUANQIUHUIJU.equals(orderEntity.getPayChannel())){ }else if(ComCode.PAYCHANNEL_HUANQIUHUIJU.equals(orderEntity.getPayChannel())){
orderEntity.setPayStatus("2"); orderEntity.setPayStatus("2");
payDao.updateOrderStatus(orderEntity); payDao.updateOrderStatus(orderEntity);
...@@ -973,22 +988,14 @@ public class PayApiService { ...@@ -973,22 +988,14 @@ public class PayApiService {
orderEntity.setPayStatus("2"); orderEntity.setPayStatus("2");
payDao.updateOrderStatus(orderEntity); payDao.updateOrderStatus(orderEntity);
// BenefitEntity benefitEntity = new BenefitEntity();
// benefitEntity.setOrderCode(orderEntity.getPayCode());
// benefitEntity.setBenefitStatus("1");
// payDao.updateBenefit(benefitEntity);
}else{ // 支付失败 }else{ // 支付失败
orderEntity.setPayStatus("4"); orderFail(orderEntity);
payDao.updateOrderStatus(orderEntity);
BenefitEntity benefitEntity = new BenefitEntity();
benefitEntity.setOrderCode(orderEntity.getPayCode());
benefitEntity.setDelFlag("1");
payDao.deleteBenefit(benefitEntity);
} }
orderEntity = payDao.getOrder(orderEntity); orderEntity = payDao.getOrder(orderEntity);
return orderEntity; return orderEntity;
} }
/** /**
* 回调 * 回调
* @param orderEntity * @param orderEntity
...@@ -1107,12 +1114,7 @@ public class PayApiService { ...@@ -1107,12 +1114,7 @@ public class PayApiService {
order.setPayStatus("2"); order.setPayStatus("2");
payDao.updateOrderStatus(order); payDao.updateOrderStatus(order);
}else{ // 支付失败 }else{ // 支付失败
order.setPayStatus("4"); orderFail(order);
payDao.updateOrderStatus(order);
BenefitEntity benefitEntity = new BenefitEntity();
benefitEntity.setOrderCode(order.getPayCode());
benefitEntity.setDelFlag("1");
payDao.deleteBenefit(benefitEntity);
} }
} }
}else if("put_forward".equals(order.getPayMethod())){ // 提现 }else if("put_forward".equals(order.getPayMethod())){ // 提现
...@@ -1162,4 +1164,21 @@ public class PayApiService { ...@@ -1162,4 +1164,21 @@ public class PayApiService {
return jsonObject1; return jsonObject1;
} }
public BalanceEntity getPutForwardNum(JuHeZhongPayRequest request){
BenefitEntity entity = new BenefitEntity();
entity.setUserCode(request.getSubMerchantCode());
BalanceEntity balanceEntity = benefitSevice.getBalanceM(entity);
return balanceEntity;
}
private void orderFail(OrderEntity orderEntity){
orderEntity.setPayStatus("4");
payDao.updateOrderStatus(orderEntity);
BenefitEntity benefitEntity = new BenefitEntity();
benefitEntity.setOrderCode(orderEntity.getPayCode());
benefitEntity.setDelFlag("1");
payDao.deleteBenefit(benefitEntity);
}
} }
package com.thinkgem.jeesite.modules.user.api; package com.thinkgem.jeesite.modules.user.api;
import com.google.common.collect.Maps;
import com.thinkgem.jeesite.common.baseBean.Response; import com.thinkgem.jeesite.common.baseBean.Response;
import com.thinkgem.jeesite.common.constant.ComCode; import com.thinkgem.jeesite.common.constant.ComCode;
import com.thinkgem.jeesite.common.utils.StringUtils; import com.thinkgem.jeesite.common.utils.StringUtils;
...@@ -19,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -19,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -609,5 +611,35 @@ public class UserApiController { ...@@ -609,5 +611,35 @@ public class UserApiController {
// return resp; // return resp;
// } // }
/**
* 获取邀请好友信息
* @param request
* @return
*/
@PostMapping("/getMyInviting")
public Response getMyInviting(UserRequest request){
Response resp = new Response();
if(request == null || StringUtils.isBlank(request.getSubMerchantCode())){
resp.setStatus(ComCode.STATUS_CODE_4002);
resp.setMessage(ComCode.STATUS_CODE_4001_DESC);
return resp;
}
try{
List<UserEntity> myInviting = userService.getMyInviting(request);
Integer activeNum = userService.getActiveNum(request);
HashMap<String, Object> map = Maps.newHashMap();
map.put("allNum",myInviting.size());
map.put("activeNum",activeNum);
map.put("list",myInviting);
resp.setData(map);
resp.setStatus(ComCode.STATUS_CODE_2000);
resp.setMessage(ComCode.STATUS_CODE_2000_DESC);
}catch (Exception e){
resp.setStatus(ComCode.STATUS_CODE_9998);
resp.setMessage(ComCode.STATUS_CODE_9998_DESC);
resp.setError(e.getMessage());
}
return resp;
}
} }
...@@ -109,4 +109,8 @@ public interface UserApiDao { ...@@ -109,4 +109,8 @@ public interface UserApiDao {
// 更新 待升级王者的用户记录表 // 更新 待升级王者的用户记录表
public Integer updateUpgradeUser(UpgradeUserEntity entity); public Integer updateUpgradeUser(UpgradeUserEntity entity);
//获取邀请好友
List<UserEntity> getMyInviting(UserRequest request);
//激活用户数量
public Integer getActiveUserNum(UserRequest request);
} }
...@@ -345,7 +345,7 @@ public class UserApiService { ...@@ -345,7 +345,7 @@ public class UserApiService {
this.merchantFeelJFen(userSubMchId.getSubmchid(),rateEntity); this.merchantFeelJFen(userSubMchId.getSubmchid(),rateEntity);
} }
}else if("".equals(rateEntity.getPayChannel())){ }else if(ComCode.PAYCHANNEL_HL3.equals(rateEntity.getPayChannel())){
} }
} }
...@@ -760,4 +760,15 @@ public class UserApiService { ...@@ -760,4 +760,15 @@ public class UserApiService {
return userDao.updateUpgradeUser(upgradeUserEntity); return userDao.updateUpgradeUser(upgradeUserEntity);
} }
//获取邀请的好友列表
public List<UserEntity> getMyInviting(UserRequest request) {
List<UserEntity> list = userDao.getMyInviting(request);
return userDao.getMyInviting(request);
}
//获取已激活数量
public Integer getActiveNum(UserRequest request){
return userDao.getActiveUserNum(request);
}
} }
...@@ -902,4 +902,27 @@ ...@@ -902,4 +902,27 @@
AND level = #{level} AND level = #{level}
AND order_code = #{orderCode} AND order_code = #{orderCode}
</update> </update>
<select id="getMyInviting" resultType="com.thinkgem.jeesite.modules.user.entity.UserEntity">
SELECT
id,
nickname,
IF(`status`=2,"已激活","未激活") status
FROM
youka_users
WHERE
recommended_mobile = (SELECT mobile FROM youka_users WHERE code = #{subMerchantCode})
</select>
<select id="getActiveUserNum" resultType="java.lang.Integer">
SELECT
count(id)
FROM
youka_users
WHERE
status = 2
AND
recommended_mobile = (SELECT mobile FROM youka_users WHERE code = #{subMerchantCode})
</select>
</mapper> </mapper>
\ No newline at end of file
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