支付宝异步通知不被调用

   相同的配置,同步调用没问题,异步调用失败,后来看了下日志,没登录被拦截了。配置拦截器后解决。

    但问题是登录之后进行付款,同步通知拦截为什么就是登录状态?

另外同步通知会调用自定义页面,异步通知不会调用自定义页面

 

在调用异步通知时,验证结果一直是FALSE,检查发现汉字乱码了,

官网的demo这样写的

//获取支付宝POST过来反馈信息
    Map<String,String> params = new HashMap<String,String>();
    Map<String,String[]> requestParams = request.getParameterMap();
    for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) {
        String name = (String) iter.next();
        String[] values = (String[]) requestParams.get(name);
        String valueStr = "";
        for (int i = 0; i < values.length; i++) {
            valueStr = (i == values.length - 1) ? valueStr + values[i]
                    : valueStr + values[i] + ",";
        }
        //乱码解决,这段代码在出现乱码时使用
        valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
        params.put(name, valueStr);
    }
View Code

实际情况应该是这样Map<String,String> params = new HashMap<String,String>();

Map<String,String[]> requestParams = request.getParameterMap();
for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {
String name = (String) iter.next();
String[] values = (String[]) requestParams.get(name);
String valueStr = "";
for (int i = 0; i < values.length; i++) {
valueStr = (i == values.length - 1) ? valueStr + values[i]
: valueStr + values[i] + ",";
}
params.put(name, valueStr);
}
View Code

打印了一下编码,楼主傻眼了,GB2312!!

编码问题解决后,楼主又发现个问题,支付宝不断回调异步通知,尽管返回的是“success”。万般无奈之下找到了支付宝人工客服,在对方的配合下最终找到了原因,http502

已经成功调用了异步通知,为什么会502呢?原因就是我内网为了测试,做了外网映射。而之前申请接口的时候,填写的网站域名与映射的不同,因此bad gateway了。

接下来就不用我啰嗦了吧,goodluck~~~

转载于:https://www.cnblogs.com/yanan7890/p/7096612.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值