最近在做一个项目,需要使用到支付模块。但是在支付的时候发现需要两个参数,一个是异步通知地址,另一个是返回结果地址。
查阅文档后,也没搞明白什么是异步通知地址。
最近几天终于在试验下搞明白了。
支付的异步请求地址就是在对方支付后,支付系统那边会给你一个地址参数,会拼接到你自己的异步请求地址后面
例如:我目前后端有一个异步请求地址为:localhost:8001/payNotify
后端代码(java):
@ResponseBody
@GetMapping("/payNotify")
public Map<String,String[]> payNotify(HttpServletRequest request){
// 获取支付宝的请求信息
Map<String, String[]> requestParams = request.getParameterMap();
if(requestParams.isEmpty()) {
// 未获取到参数执行的逻辑
}
// 我这里就直接通过json打印输出在界面了,具体逻辑根据情况来完成
return requestParams;
}
当对方在支付系统支付成功之后,就会转跳到你的异步请求地址上,并带上它给你的参数
http://localhost:8001/payNotify?pid=商户id&trade_no=支付系统的订单号&out_trade_no=你在创建订单时生成的订单号&type=交易类型&name=交易名字&money=金额&trade_status=TRADE_SUCCESS&sign=加密签名&sign_type=加密方式
对于上面这个地址来说,交易状态这个参数非常重要
trade_status=TRADE_SUCCESS
我们就是要根据这个交易状态来判断,用户交易是否成功哦!