这几天从官网下了电脑支付的案例来尝试,但是老是验证签名失败!
demo的结构是
根据官方提示的,配置好沙盒环境,我认为主要出错的是配置RSA2的公匙,这个根据支付宝官网下载的工具生成2048的公匙和私匙。
应用公匙就是左边的 “查看应用公匙”,配置好会自动生成支付宝公匙!
然后就在demo配置javaConfig。
这里需要注意配置支付宝公匙,不要配成应用公匙!!!!!
notify_url这个页面是支付宝主动访问的,所有需要natapp来内网穿透,这是官网上截取的。
最后注意的点是:沙盒环境下的网关与正式环境下不一样。
但是这样我虽然异步通知收到了但是老是sdk验证失败!
后来把valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");注释才验证成功的!
return_url是支付成功的返回页,notify_url是异步通知,哪为什么官方的demo的异步通知让我们验证成功后做业务处理,不能放在返回页吗?
查了网上的资料,人可以使之在没有跳转回来之前就关掉了该页面,此时如果是在return_url处理,就没有业务处理了,这样直接导致了掉单。