支付宝PC版支付
开发文档
@RequestMapping("/alipayPC")
public void alipayPC(@RequestParam("orderNumber") String orderNumber, HttpServletRequest request, HttpServletResponse response) throws Exception{
OrderInfo info = orderInfoService.selectOne(new EntityWrapper<OrderInfo>()
.eq("order_number",orderNumber));
String orderNo = (System.currentTimeMillis()+"").substring(1)+(System.nanoTime()+"").substring(7,8);
String totalAmount = info.getOrderMoney().toString();
String subject = info.getOrderProject();
AlipayClient client = new
DefaultAlipayClient (url,app_id,private_key,format,charset,
public_key,signtype );
AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
alipayRequest.setReturnUrl("http://XXXX.com/XXXX/api/returnUrlPC?orderNumber="+orderNumber);
alipayRequest.setNotifyUrl("http://XXXX.com/XXXX/api/notifyUrl");
AlipayTradePagePayModel model = new AlipayTradePagePayModel();
model.setProductCode("FAST_INSTANT_TRADE_PAY");
model.setOutTradeNo(orderNo);
model.setSubject(subject);
model.setTotalAmount(totalAmount);
model.setBody(info.getOrderProject());
alipayRequest.setBizModel(model);
String form = client.pageExecute(alipayRequest).getBody();
response.setContentType("text/html;charset="+charset);
response.getWriter().write(form);
response.getWriter().flush();
response.getWriter().close();
}
@RequestMapping("/returnUrlPC")
public void returnUrlPC(HttpServletResponse response,HttpServletRequest request) throws IOException, AlipayApiException {
String orderNumber = request.getParameter("orderNumber");
OrderInfo info = orderInfoService.selectOne(new EntityWrapper<OrderInfo>()
.eq("order_number",orderNumber));
Map<String, String> params = new HashMap<String, String>();
Map<String, String[]> requestParams = request.getParameterMap();
for (Iterator<String> 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);
}
params.remove("orderNumber");
boolean signVerified = AlipaySignature.rsaCheckV1(params, public_key, charset, signtype);
System.out.println(signVerified);
response.sendRedirect("http://www.XXXX.com/orderDetail.html?orderNum="+orderNumber);
}
更新数据库应该是notify里面修改