支付宝本地调试异步回调Java
初衷:
解决支付宝无法本地调试的问题,因为支付宝签约商户时有限制,必须在签约的域名上测试支付宝的支付结果。如果直接返回商户的则不需要服务器上调试,但是支付宝的异步通知,必须要在公网上才可以调试,所以每次需要打个war包,放到服务器上去调试,出现了问题页不易发现,不易解决。所以构思了能不能在本地调试支付宝的异步通知方法。
正文:
一、实现的效果
可以本地调制支付宝的onCallBack异步回调方法
二、需要用到的工具
内网穿透工具:natapp。
一台服务器需要装好nginx。
三、使用方法
1、在https://natapp.cn/ 创建账号,并进入到我的后台。
2、购买免费通道
3、配置隧道的端口,因为要测试支付宝回调,默认80就可以。
4、点击免费购买,进入此页面,并记住authtoken
5、下载Mac OS X 64位,将下载后的压缩包解压到本地没有中文的路径下。
http://download.natapp.cn/assets/downloads/clients/2_2_0/natapp_darwin_amd64_2_2_0.zip
6、打开终端,给解压出来的软件授权。输入此命令回车
chmod a+x [color=red]你的目录[/color]/natapp
7、在终端中运行此软件输入此命令,红色部分为上面第4条的authtoken,回车。
8、出现以下界面,表示成功,并复制红色框中的地址。不要关闭终端。
三、支付宝签约的域名,分配出一个子域名,并指向到服务器ip上。
比如:alipay.xxx.com 。下面需要把这个地址配置到nginx中
四、配置服务器端的nginx
1、在linux服务器上安装好 nginx,具体的安装方法请百度。
2、配置nginx的配置文件 nginx/conf/nginx.conf。蓝色框内为整个配置,把上面第二.8条中复制的地址粘贴到红色框处,并把nginx重启。
五、需要把本地工程中的onPay方法(就是支付宝生成付款html的方法)中的notify_url(异步通知url)的前置域名定死成上面第三步的子域名。
六、调用测试前。
1、将支付宝去付款需要传的商户号等配置好。
2、用第三步分配出的子域名访问就可以了。