package cn.ambuf.product.recruit.payController; import cn.ambuf.product.core.pojo.login.SysLoginUser; import cn.ambuf.product.recruit.entity.BasicInfo; import cn.ambuf.product.recruit.entity.ExamineeStatus; import cn.ambuf.product.recruit.enums.DictionariesEnum; import cn.ambuf.product.recruit.model.param.ExamineeStatusParam; import cn.ambuf.product.recruit.service.BasicInfoService; import cn.ambuf.product.recruit.service.ExamineeStatusService; import cn.ambuf.product.recruit.util.pay.YeepayService; import cn.ambuf.product.sys.modular.auth.context.LoginContextSpringSecurityImpl; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.HashMap; import java.util.Map; /** * 考生缴费 * * @author: HQ * @date: 2020/12/27 17:44 */ @Api(tags = "缴费接口") @Controller public class PayBeginController { private String p8Url = DictionariesEnum.P8_URL.getMessage(); @Resource private LoginContextSpringSecurityImpl loginContextSpringSecurity; @Resource private ExamineeStatusService examineeStatusService; @ApiOperation(value="缴费 需要参数money金额 + payType商品名称类如zpbsjf和zpmsjf缴费类型的全拼") @ApiParam(value = "基本信息参数") @PostMapping("/pay/startAmount") public void payAmountStart(HttpServletResponse response,HttpServletRequest request) throws IOException { SysLoginUser sysLoginUser = loginContextSpringSecurity.getSysLoginUser(); String userName = sysLoginUser.getName(); Long userId = sysLoginUser.getId(); ExamineeStatus examineeStatus = examineeStatusService.searchStatus(userId); String paymentOrder = examineeStatus.getPaymentOrder(); String p0_Cmd = "Buy"; String p2_Order = paymentOrder; //订单号 String p3_Amt = request.getParameter("money");;//money String p4_Cur = "CNY"; String p5_Pid = request.getParameter("payType");// 商品名称 String p6_Pcat = "";//商品种类 String p7_Pdesc = "";//商品描述 String p8_Url = p8Url;//通知地址 String p9_SAF = "0"; String pa_MP = ""; String pb_ServerNotifyUrl= "";//服务器通知地址 String pa_Ext = ""; String pb_Oper = ""; String pd_FrpId = ""; String pd_BankBranch = ""; String pt_ActId = ""; String pv_Ver = ""; String pm_Period = ""; String pn_Unit = ""; String pr_NeedResponse = "1"; String pt_UserName = userName; String pt_PostalCode = ""; String pt_Address = ""; String pt_TeleNo = ""; String pt_Mobile = ""; String pt_Email = ""; String pt_LeaveMessage = ""; Map<String, String> params = new HashMap<String, String>(); params.put("p0_Cmd", p0_Cmd); params.put("p2_Order", p2_Order); params.put("p3_Amt", p3_Amt); params.put("p4_Cur", p4_Cur); params.put("p5_Pid", p5_Pid); params.put("p6_Pcat", p6_Pcat); params.put("p7_Pdesc", p7_Pdesc); params.put("p8_Url", p8_Url); params.put("p9_SAF", p9_SAF); params.put("pa_MP", pa_MP); params.put("pb_ServerNotifyUrl", pb_ServerNotifyUrl); params.put("pd_FrpId", pd_FrpId); params.put("pm_Period", pm_Period); params.put("pn_Unit", pn_Unit); params.put("pr_NeedResponse",pr_NeedResponse); params.put("pt_UserName",pt_UserName); params.put("pt_PostalCode",pt_PostalCode); params.put("pt_Address",pt_Address); params.put("pt_TeleNo",pt_TeleNo); params.put("pt_Mobile",pt_Mobile); params.put("pt_Email",pt_Email); params.put("pt_LeaveMessage",pt_LeaveMessage); System.out.println("params : " + params); String payURL = YeepayService.getPayURL(params); if("".equals(payURL)) { System.out.println("生成链接失败!"); } else { response.sendRedirect(payURL); } } @ApiOperation(value="缴费回调") @ApiParam(value = "基本信息参数") @GetMapping("/pay/payAmountEnd") public void payAmountEnd(HttpServletRequest request) throws IOException { String p1_MerId = String.valueOf(request.getParameter("p1_MerId")); String r0_Cmd = String.valueOf(request.getParameter("r0_Cmd")); String r1_Code = String.valueOf(request.getParameter("r1_Code")); String r2_TrxId = String.valueOf(request.getParameter("r2_TrxId")); String r3_Amt = String.valueOf(request.getParameter("r3_Amt")); String r4_Cur = String.valueOf(request.getParameter("r4_Cur")); String r5_Pid = String.valueOf(request.getParameter("r5_Pid")); String r6_Order = String.valueOf(request.getParameter("r6_Order")); String r7_Uid = String.valueOf(request.getParameter("r7_Uid")); String r8_MP = String.valueOf(request.getParameter("r8_MP")); String r9_BType = String.valueOf(request.getParameter("r9_BType")); String rb_BankId = String.valueOf(request.getParameter("rb_BankId")); String ro_BankOrderId = String.valueOf(request.getParameter("ro_BankOrderId")); String rp_PayDate = String.valueOf(request.getParameter("rp_PayDate")); String rq_CardNo = String.valueOf(request.getParameter("rq_CardNo")); String ru_Trxtime = String.valueOf(request.getParameter("ru_Trxtime")); String rq_SourceFee = String.valueOf(request.getParameter("rq_SourceFee")); String rq_TargetFee = String.valueOf(request.getParameter("rq_TargetFee")); String hmac = String.valueOf(request.getParameter("hmac")); String hmac_safe = String.valueOf(request.getParameter("hmac_safe")); String[] strArr = {p1_MerId, r0_Cmd, r1_Code, r2_TrxId, r3_Amt, r4_Cur, r5_Pid, r6_Order, r7_Uid, r8_MP, r9_BType }; boolean hmacIsCorrect = YeepayService.verifyCallbackHmac(strArr, hmac); boolean hmacsafeIsCorrect = YeepayService.verifyCallbackHmac_safe(strArr, hmac_safe); System.out.println("回调参数~~~~~~~~~~strArr~~~~~~~~~~~=" + strArr[0]+" "+strArr[1]+" "+strArr[2]+" "+strArr[3]+" "+strArr[4]+" "+strArr[5]+" "+strArr[6]+" "+strArr[7]+" "+strArr[8]+" "+strArr[9]+" "+strArr[10]); System.out.println("r5_Pid="+strArr[6]); System.out.println(hmacIsCorrect+"&&&&"+hmacsafeIsCorrect); if(hmacIsCorrect && hmacsafeIsCorrect) { if(r9_BType.equals("2")) { System.out.println("SUCCESS"); System.out.println("服务器回调~~~~~~~~~~SUCCESS~~~~~~~~~~~"); //r6_Order 订单号用来更新状态 ExamineeStatusParam examineeStatus = new ExamineeStatusParam(); examineeStatus.setPaymentOrder(r6_Order); if ("zpbsjf".equals(r5_Pid)) { examineeStatus.setWrittenBillStatus(1); }else if ("zpmsjf".equals(r5_Pid)){ examineeStatus.setInterviewOrder(r2_TrxId); examineeStatus.setInterviewBillStatus(1); } examineeStatusService.updateStatus(examineeStatus); return; } } else { System.out.println("Hmac Not Correction!"); return; } } }
版权声明:本文为qq_38733892原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。