支付宝接口支付完成不跳转return_url也不异步返回notify_url的问题
return_url和notify_url
今天因为一个支付demo出问题弄了两个多小时,使用了支付宝支付接口支付,接受到了表单,并且完成了支付。然而作为商家的服务器端并不知道用户是否进行了付款,这时候就会用到return_url和notify_url这两个参数,前者是支付成功跳转的页面,后者是支付状态发生改变(如:用户付款完成)请求的url路径。
当时demo的代码如下,去掉了很多选填字段:
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
request.setBizContent("{" +"\"out_trade_no\":\"20150320010101001\"," +"\"product_code\":\"FAST_INSTANT_TRADE_PAY\"," +"\"total_amount\":0.01," +"\"subject\":\"Iphone6 16G\"," +"\"body\":\"Iphone6 16G\"," +"\"return_url\":\"我的跳转地址\"," +"\"notify_url\":\"支付宝异步通知我的地址\"," +"\"goods_type\":\"0\"," +"\"timeout_express\":\"90m\"," +"\"integration_type\":\"ALIAPP\"," +"\"request_from_url\":\"https://www.baidu.com\"," +" }");
AlipayTradePagePayResponse response = alipayClient.pageExecute(request);
if(response.isSuccess()){System.out.println("调用成功");
} else {System.out.println("调用失败");}
然而在我支付成功之后,并没有进行跳转,支付宝也没有异步请求我设置的notify_url。百度了很多文章,也没发现和我一样的错误(可能这个错误太低级了)。
错误的原因是作为公共请求参数的return_url和notify_url,不能设置在bizContent中。于是将bizContent的json字符串中的两个url去掉,使用如下设置request
request.setReturnUrl("http://gk6v3z.natappfree.cc/share/static/index.html");
request.setNotifyUrl("http://gk6v3z.natappfree.cc/share/goods/testReturn");
问题解决
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
