支付宝接口支付完成不跳转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");

    问题解决

你可能感兴趣的:(支付宝接口支付完成不跳转return_url也不异步返回notify_url的问题)