/**
* 支付宝Controller
* @author 宗潇帅
* @修改日期 2014-9-25下午1:29:53
*/
@Controller
@RequestMapping
(value=
"/aliapi"
)
public
class
AlipayApiController {
private
static
Log log = LogFactory.getLog(AlipayApiController.
class
);
@RequestMapping
(value=
"/index"
)
public
String index(HttpServletRequest request,
HttpServletResponse response){
return
"web/pay/fund"
;
}
@RequestMapping
(value =
"/deposit"
, method = RequestMethod.POST,produces =
"application/json"
)
public
String deposit(HttpServletRequest request,HttpServletResponse response,Model model)
throws
Exception {
String result =
""
;
Date date =
new
Date();
String payment_type =
"1"
;
String notify_url =
"http://192.168.0.222:8080/live/aliapi/async"
;
String return_url =
"http://192.168.0.222:8080/live/aliapi/return_url"
;
String subject =
"充值测试"
;
String anti_phishing_key =
""
;
String exter_invoke_ip =
""
;
String total_fee = ServletRequestUtils.getStringParameter(request,
"amount"
,
""
);
String body = ServletRequestUtils.getStringParameter(request,
"body"
,
"test"
);
String show_url = ServletRequestUtils.getStringParameter(request,
"show_url"
,
"http://www.elve.cn"
);
Map<String, String> sParaTemp =
new
HashMap<String, String>();
sParaTemp.put(
"service"
,
"create_direct_pay_by_user"
);
sParaTemp.put(
"partner"
, AlipayConfig.partner);
sParaTemp.put(
"_input_charset"
, AlipayConfig.input_charset);
sParaTemp.put(
"payment_type"
, payment_type);
sParaTemp.put(
"notify_url"
, notify_url);
sParaTemp.put(
"return_url"
, return_url);
sParaTemp.put(
"seller_email"
, Constants.SELLER_EMAIL);
sParaTemp.put(
"out_trade_no"
, date.getTime()+payment_type);
sParaTemp.put(
"subject"
, subject);
sParaTemp.put(
"total_fee"
, total_fee);
sParaTemp.put(
"body"
, body);
sParaTemp.put(
"show_url"
, show_url);
sParaTemp.put(
"anti_phishing_key"
, anti_phishing_key);
sParaTemp.put(
"exter_invoke_ip"
, exter_invoke_ip);
try
{
String sHtmlText = AlipaySubmit.buildRequest(sParaTemp,
"post"
,
"确认"
);
Gson gson =
new
GsonBuilder().setDateFormat(
"yyyy-MM-dd HH:mm:ss"
).create();
String s = gson.toJson(sHtmlText);
model.addAttribute(
"sHtmlText"
, s);
request.setAttribute(
"sHtmlText"
, s);
result =
"{\"success\":true,\"msg\":\"跳转成功\"}"
;
StringUtil.writeToWeb(sHtmlText,
"html"
, response);
return
null
;
}
catch
(Exception e) {
if
(log.isErrorEnabled()){
log.error(
"ddddddddddddddddddddd"
);
}
result =
"{\"success\":false,\"msg\":\"跳转失败,请稍候再试!\"}"
;
StringUtil.writeToWeb(result,
"html"
, response);
return
null
;
}
}
/**
* 同步通知的页面的Controller
* @param request
* @param response
* @return
* @author 宗潇帅
*/
@RequestMapping
(value=
"/return_url"
)
public
String Return_url(HttpServletRequest request,HttpServletResponse response){
return
"web/pay/success"
;
}
/**
* 异步通知付款状态的Controller
* @param request
* @param response
* @return
* @author 宗潇帅
*/
@SuppressWarnings
(
"rawtypes"
)
@RequestMapping
(value=
"/async"
,method = RequestMethod.GET)
public
String async(HttpServletRequest request,
HttpServletResponse response){
Map<String,String> params =
new
HashMap<String,String>();
Map requestParams = request.getParameterMap();
for
(Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {
String name = (String) iter.next();
String[] values = (String[]) requestParams.get(name);
String valueStr =
""
;
for
(
int
i =
0
; i < values.length; i++) {
valueStr = (i == values.length -
1
) ? valueStr + values[i]: valueStr + values[i] +
","
;
}
params.put(name, valueStr);
}
String tradeNo = request.getParameter(
"out_trade_no"
);
String tradeStatus = request.getParameter(
"trade_status"
);
if
(AlipayNotify.verify(params)){
if
(tradeStatus.equals(
"TRADE_FINISHED"
) || tradeStatus.equals(
"TRADE_SUCCESS"
)) {
log.error(
"ok......."
);
System.out.println(
">>>>>充值成功"
+ tradeNo);
}
return
"web/pay/success"
;
}
else
{
return
"web/pay/fail"
;
}
}
}