一.下单接口
随便定义个表
order orderId amount body,key
@RequestMapping("pay/pay")
private void pay(Order order){
//LinkedHashMap遍历时按照插入顺序取出
Map<String,String> map = new LinkedHashMap<String,String>();
map.put("orderId",order.getOrderId());
map.put("amount",order.getAmount());
//支付成功回调地址,HOST自己定义的,进回调接口
map.put(notityUrl",HOST+"/notity/pay);
map.put("body",order.getBody());
//对数据进行签名
map.put("sign",SignUtils.sign(map,order.getKey()));
//对数据进行报文封装,以&=的形式
String baowen = SignUtils.params(map);
//上送报文(支付路径)
HttpUtils.post("http://www.xxx.com",baowen);
}
二.回调接口
@RequestMapping("notity/pay")
public String notity(HttpServletRequest request){
//获取订单号
String orderId = request.getParameter("orderId");
String amount= request.getParameter("amount");
String body= request.getParameter("body");
//对获取的数据进行sign签名
Map<String,String> map = new TreeMap<String,String>();
Order order = New Order();
map.put("orderId",orderId);
map.put("amount",amount);
map.put("body",body);
String sign = SignUtils.sign(map,order.getKey());
if(sign.equals(request.getParameter("sign"))){
return "SUCCESS";
}else{
return "FALSE";
}
}