package cn.it.shop.action; import java.util.Map; import org.apache.struts2.interceptor.ParameterAware; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import cn.it.shop.model.BackData; import cn.it.shop.model.Forder; import cn.it.shop.model.SendData; import cn.it.shop.model.Status; import cn.it.shop.model.User; /** * Struts处理流程: * 1. 获取请求后,先创建Action代理,在创建代理的时候顺便创建了Action, * 2. 执行18个拦截器,拦截器执行成功后再调用Action的方法 * 3. Action的方法执行完毕后,再调用18个拦截器 * 所以先创建Action-->servletConfig(拿到parameters)-->modelDriven * @author Ni Shengwu * */ @Controller("payAction") @Scope("prototype") public class PayAction extends BaseAction<Object> implements ParameterAware { private Map<String, String[]> parameters; @Override public Object getModel() { if(parameters.get("pd_FrpId") != null) { model = new SendData(); } else { model = new BackData(); } return model; } @Override public void setParameters(Map<String, String[]> parameters) { this.parameters = parameters; } public String goBank() { SendData sendData = (SendData)model; //1. 补全参数:P2 p3 pd Pa需要从session中获取 Forder forder = (Forder) session.get("oldForder"); User user = (User) session.get("user"); sendData.setP2_Order(forder.getId().toString()); //商户订单号 sendData.setP3_Amt(forder.getTotal().toString()); //支付金额 sendData.setPa_MP(user.getEmail() + "," + user.getPhone()); //商户扩展信息 //2. 对参数进行追加 //3. 加密获取签名 //4. 存储到request域中 payService.saveDataToRequest(request, sendData); //完成2,3,4 //5. 跳转到支付页面 return "pay"; } public String backBank() { BackData backData = (BackData)model; System.out.println(model); boolean isOK = payService.checkBackData(backData); if(isOK) { //1. 更新订单状态,参数是自己根据数据库中的情况传进去的,用来测试 forderService.updateStatusById(Integer.parseInt(backData.getR6_Order()), 2); //2. 根据user邮箱地址,发送邮件 String emailAddress = backData.getR8_MP().split(",")[0]; emailUtil.sendEmail(emailAddress, backData.getR6_Order()); //3. 发送手机短信 String phoneNum = backData.getR8_MP().split(",")[1]; messageUtil.sendMessage(phoneNum, backData.getR6_Order()); System.out.println("----success!!----"); return "index"; } else { System.out.println("----false!!!----"); return "error"; } } }

天下无敌啦啦啦啦啦 LV2
2月3日
反复发烧 LV1
1月28日
wuying8208 LV10
1月1日
二十一画 LV10
2022年6月25日
wanglinddad LV51
2022年4月18日
1358677997 LV2
2021年12月27日
如意 LV2
2021年11月30日
去微软推哦怕 LV1
2021年10月22日
aikesi0807 LV2
2021年10月12日
zww1223 LV4
2021年9月1日

嵌小新 LV2
3月20日
aptx1234567891
3月12日
暂无贡献等级
天下无敌啦啦啦啦啦 LV2
2月3日
反复发烧 LV1
1月28日
月辰
1月13日
暂无贡献等级
wuying8208 LV10
1月1日
微信网友_6281203027070976
2022年12月28日
暂无贡献等级
齐吊大神 LV5
2022年12月19日
upup996 LV6
2022年12月15日
微信网友_6254095067451392 LV3
2022年12月9日