先说明哦,这个只是我遇到的情况,最近在做调用支付宝网页支付的功能,接触到了支付宝的沙箱环境,其中要配置两个URL:
一个是 return_url ,即同步通知调用的地址,也就是用户扫码支付成功后跳转的路径,这个一般可以选择跳回项目里的页面或者单独跳一个页面,通知用户支付成功了就行,记得这个路径返回的 Map 里的值只有部分有用,不能确认对方是否收款成功,主要还是看下面那个地址返回的Map 里的值;
一个是 notify_url,即异步调用的地址,也是确认此次订单是否收款成功的重要依据,支付宝发起通知所要请求的路径,这个一定要是外网能访问到的,并且项目里不要对该路径做任何的拦截,例如用户登录权限等等,我做的时候就是遇到这个问题了,最后在拦截器里忽略该路径,才接收通知成功,可能还有别的方法,望指教。确认收款成功的key值是 “ trade_status ”,它对应的值如果是 “ TRADE_SUCCESS ” 或者 “ TRADE_FINISHED ”,代表收款成功,这次订单结束了 ;
switch (alipayTradeQueryResponse.getTradeStatus()) // 判断交易结果 { case "TRADE_FINISHED": // 交易结束并不可退款 break; case "TRADE_SUCCESS": // 交易支付成功 break; case "TRADE_CLOSED": // 未付款交易超时关闭或支付完成后全额退款 break; case "WAIT_BUYER_PAY": // 交易创建并等待买家付款 break; default: break; }
原文:https://www.cnblogs.com/Keyifan/p/13604791.html