package net.tooan.ynpay.wechat.webapp.controller;
import net.tooan.ynpay.commons.YnpayJndiConstants;
import net.tooan.ynpay.third.jfinal.core.Controller;
import net.tooan.ynpay.third.jfinal.ext.interceptor.ejb.RemoteEJB;
import net.tooan.ynpay.wechat.agent.WechatConstants;
import net.tooan.ynpay.wechat.agent.facade.WechatFacade;
import net.tooan.ynpay.wechat.agent.helper.MsgTools;
import net.tooan.ynpay.wechat.agent.model.Server;
/**
* Created with IntelliJ IDEA.
* User: Jing
* Date: 13-10-22
* Time: 上午10:06
*/
public class EntranceController extends Controller {
@RemoteEJB(mappedName = YnpayJndiConstants.Mongo_Wechat_Facade_Remote)
private WechatFacade facade;
public void index() {
// 获取微信服务的名称
String name = getPara(0, WechatConstants.SERVICE_DEFAULT);
// 如果是 GET 请求,那么对请求的参数进行校验
if ("GET".equals(getRequest().getMethod())) {
try {
Server server = facade.getServer(name);
if (MsgTools.check(getPara("signature"), getPara("timestamp"), getPara("nonce"), server.getToken())) {
if (server.getStatus() == -1) {
renderNull();
} else {
renderText(getPara("echostr"));
}
} else {
renderNull();
}
} catch (Exception e) {
renderNull();
}
}
if ("POST".equals(getRequest().getMethod())) {
forwardAction("/server/" + name);
}
}
}