yonge 2 年之前
父節點
當前提交
04ded26f33

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/HfMemberDao.java

@@ -24,5 +24,7 @@ public interface HfMemberDao extends BaseDAO<Integer, HfMember> {
     HfMember getByName(@Param("name") String name, @Param("payerName") String payerName);
     
     HfMember getByOrganId(@Param("organId") Integer organId, @Param("payerName") String payerName);
+    
+    HfMember queryByRequestNo(String requestNo);
 
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/HfMemberService.java

@@ -18,6 +18,8 @@ public interface HfMemberService extends BaseService<Integer, HfMember> {
     
     HfMember getByOrganId(Integer organId, String payerName);
 
+    HfMember queryByRequestNo(String requestNo);
+
     boolean createMember(HfMember member, File file) throws Exception;
 
     boolean updateMember(HfMember member, File file) throws Exception;

+ 7 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/HfMemberServiceImpl.java

@@ -69,6 +69,11 @@ public class HfMemberServiceImpl extends BaseServiceImpl<Integer, HfMember> impl
 	}
 
 	@Override
+	public HfMember queryByRequestNo(String requestNo) {
+		return hfMemberDao.queryByRequestNo(requestNo);
+	}
+
+	@Override
     @Transactional(rollbackFor = Exception.class)
     public boolean createMember(HfMember member, File file) throws Exception {
         HfMember hasMember = hfMemberDao.getByOrganId(member.getOrganId(), member.getPayerName());
@@ -269,9 +274,9 @@ public class HfMemberServiceImpl extends BaseServiceImpl<Integer, HfMember> impl
 		merchantInfo.setProvinceCode(member.getProvCode());
 		merchantInfo.setSettlementDirection("BANKCARD");
 
-		String notifyURL = MessageFormatter.arrayFormat(AdapayNotifyConstants.corp_member_notify_url_test, "adapay");
+		String notifyURL = MessageFormatter.arrayFormat(AdapayNotifyConstants.corp_member_notify_url_test, "yeepay");
 		if (StringUtils.equals(env, "prod")) {
-			notifyURL = MessageFormatter.arrayFormat(AdapayNotifyConstants.corp_member_notify_url_prod, "adapay");
+			notifyURL = MessageFormatter.arrayFormat(AdapayNotifyConstants.corp_member_notify_url_prod, "yeepay");
 		}
 		
 		return yeepayMerchantService.registerSaasMerchantV2(hfMerchantConfig, merchantInfo, notifyURL);

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/HfMemberMapper.xml

@@ -240,4 +240,10 @@
         WHERE organ_id_ = #{organId} and payer_name_ = #{payerName}
     </select>
 
+    <select id="queryByRequestNo" resultMap="hfMember">
+        SELECT *
+        FROM hf_member
+        WHERE request_no_ = #{requestNo}
+    </select>
+
 </mapper>

+ 2 - 4
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -271,9 +271,7 @@ public class StudentOrderController extends BaseController {
 				break;
 			case YEEPAY:
 				
-				String content = IOUtils.toString(request.getInputStream(), StandardCharsets.UTF_8);
-				
-				JSONObject jsonObject = JSONObject.parseObject(content);
+				String content = request.getParameter("response");
 				
 				HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(studentPaymentOrder.getTenantId(), studentPaymentOrder.getPaymentChannel());
 		        if(hfMerchantConfig == null){
@@ -282,7 +280,7 @@ public class StudentOrderController extends BaseController {
 				
 				// 构造结果通知请求对象
 				DigitalEnvelopeDTO dto = new DigitalEnvelopeDTO();
-				dto.setCipherText(jsonObject.getString("response"));
+				dto.setCipherText(content);
 				PrivateKey privateKey =RSAKeyUtils.string2PrivateKey(hfMerchantConfig.getRsaPrivateKey());
 				PublicKey publicKey = RSAKeyUtils.string2PublicKey(hfMerchantConfig.getRsaPublicKey());
 				

+ 1 - 1
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/yeepay/YeepayMerchantService.java

@@ -84,7 +84,7 @@ public class YeepayMerchantService {
 		settlementAccountInfoMap.put("bankCardNo", merchantInfo.getBankCardNo());
 		request.addParam("settlementAccountInfo", JSONObject.toJSONString(settlementAccountInfoMap));
 
-		request.addParam("notifyUrl", notifyURL);
+		request.addParam("notifyUrl", notifyURL + "/" + request.getParamValue("requestNo"));
 		request.addParam("productInfo", "[{\"productCode\":\"D1\",\"rateType\":\"SINGLE_FIXED\",\"fixedRate\":\"0\",\"paymentMethod\":\"REAL_TIME\"}]");
 
 

+ 14 - 9
mec-web/src/main/java/com/ym/mec/web/controller/payment/YeepayController.java

@@ -7,6 +7,7 @@ import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 import java.security.PrivateKey;
 import java.security.PublicKey;
+import java.util.Date;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -112,23 +113,27 @@ public class YeepayController extends BaseController {
     	return null;
     }
 
-    @PostMapping("/callback/{tenantId}")
-	public String callback(@PathVariable("tenantId") Integer tenantId, HttpServletRequest request) {
+    @PostMapping("/callback/{requestNo}")
+	public String callback(@PathVariable("requestNo") String requestNo, HttpServletRequest request) {
+    	
+    	HfMember hfMember = hfMemberService.queryByRequestNo(requestNo);
+		if(hfMember == null){
+			return "请求编号["+ requestNo +"]在系统中不存在";
+		}
+		hfMember.setUpdateTime(new Date());
 
-		HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(tenantId, PaymentChannelEnum.YEEPAY.getCode());
+		HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(hfMember.getTenantId(), PaymentChannelEnum.YEEPAY.getCode());
         if(hfMerchantConfig == null){
-        	throw new BizException("机构[{}][{}]商户信息找不到", tenantId, PaymentChannelEnum.YEEPAY.getCode());
+        	throw new BizException("机构[{}][{}]商户信息找不到", hfMember.getTenantId(), PaymentChannelEnum.YEEPAY.getCode());
         }
         
 		try {
-			
-	        String content = IOUtils.toString(request.getInputStream(), StandardCharsets.UTF_8);
-			
-			JSONObject jsonObject = JSONObject.parseObject(content);
+
+			String content = request.getParameter("response");
 			
 			// 构造结果通知请求对象
 			DigitalEnvelopeDTO dto = new DigitalEnvelopeDTO();
-			dto.setCipherText(jsonObject.getString("response"));
+			dto.setCipherText(content);
 			PrivateKey privateKey =RSAKeyUtils.string2PrivateKey(hfMerchantConfig.getRsaPrivateKey());
 			PublicKey publicKey = RSAKeyUtils.string2PublicKey(hfMerchantConfig.getRsaPublicKey());