1
uqf0663 2018-07-01 01:38:36 +08:00
可以的,微信支付后台产品设置那里你得选 https
|
2
34C OP @uqf0663
产品中心 - 开发配置 - 支付配置 - 公众号支付 - 支付授权目录 你说的是这个配置嘛?这里有配置 https 的,没用; 而这里保留只 https 而 notify_url 改成 http 一样可以通知成功,不知道啥情况 |
3
airyland 2018-07-01 07:22:27 +08:00 via iPhone
用 lets encrypt 证书的地址做为回调很久了,并没有遇到问题。
|
4
phpcxy 2018-07-01 07:23:51 +08:00 via Android
我也是用 Let ' s Encrypt,也是改为 http 才能收到通知。我怀疑是自己 nginx 配置问题,不过那个项目已经凉了,最后也没搞啦。
|
5
vacker 2018-07-01 08:34:58 +08:00 via Android
我也是用的 HTTPS 啊,证书也是 let ’ s encrypt 一年多了现在正常使用,稳如狗。肯定是你什么地方配置没对。
|
7
vacker 2018-07-01 10:37:50 +08:00 1
@34C
server { listen 80; listen 443 ssl http2; server_name www.xxx.com; index index.php index.html index.htm default.php default.htm default.html; root /www/wwwroot/www.xxx.com; #SSL-START SSL 相关配置,请勿删除或修改下一行带注释的 404 规则 #error_page 404/404.html; #HTTP_TO_HTTPS_START if ($server_port !~ 443){ rewrite ^(/.*)$ https://$host$1 permanent; } #HTTP_TO_HTTPS_END ssl_certificate /etc/letsencrypt/live/www.xxx.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.xxx.com/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; error_page 497 https://$host$request_uri; #SSL-END #ERROR-PAGE-START 错误页配置,可以注释、删除或修改 error_page 404 /404.html; error_page 502 /502.html; #ERROR-PAGE-END #PHP-INFO-START PHP 引用配置,可以注释或修改 include enable-php-71.conf; #PHP-INFO-END #REWRITE-START URL 重写规则引用,修改后将导致面板设置的伪静态规则失效 include /www/server/panel/vhost/rewrite/www.xxx.com.conf; #REWRITE-END #禁止访问的文件或目录 location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md) { return 404; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; access_log off; } location ~ .*\.(js|css)?$ { expires 12h; access_log off; } access_log /www/wwwlogs/www.xxx.com.log; } |
8
ss098 2018-07-01 10:40:22 +08:00
之前似乎看过一篇帖子,微信好像把 TLS 版本限制为比较新的版本( TLS 1.2 / TLS 1.3 ),不支持较旧的版本,但找了一下找不到了。
|
10
mydns 2018-07-01 11:02:24 +08:00
支持
扫码回调链接 操作 https://www. |
11
34C OP @vacker 在 myssl 检测了一下,评级为 B,把 RC4 和 DH 都禁用了,评级升到 A 了,仍然收不到微信的通知…
|
13
34C OP @ss098 我现在是 TLS 1.0 / 1.1 / 1.2 都支持,SSL 2 / 3 都关闭了,还是不行,楼上那位可以的也有开 TLS 1.0 唉
|
14
ysc3839 2018-07-01 15:32:35 +08:00 via Android
跳转 https 那里不应该用 rewrite 吧?
应该用 return 301 return 301 https://$host$request_uri; |
15
hlwjia 2018-07-01 15:34:39 +08:00 via iPhone
把你的配置贴出来呀
那么多人用了那么久的都没问题 |
16
34C OP @hlwjia
我的服务器是 Windows + IIS 所以只能说配置结果等于楼上 nginx 的,但要我怎么贴配置呢… 而且还真不是只有我一个人有问题,可以看看: https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=dce861f3379989aac1e017e655c42d24 https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=00006ef3398a1009d416cac3f5b000 https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=000a46f7a305c895bfa6c44c457000 https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=000ce62024ced866b1a65f8ee5a400 |
18
34C OP @hlwjia
不是,我没做小程序支付,做的是公众号内 JSAPI 的支付,整个支付流程都走通了,就是支付通知收不到, 什么都不动,把 notify url 改成 http 的就能收到,改回 https 又不行, 换个别的 url 只要是 https 也不行, 服务器日志压根没收到任何请求, 而且同个域名的 https 有别的接口给公众号做自动回复,每天几千次请求都正常,唯独收不到支付通知, 蛋疼得要命 |
19
xi_lin 2018-07-01 17:03:06 +08:00
|
21
hlwjia 2018-07-01 17:23:14 +08:00
这个地址自己能访问吗?
|
24
34C OP @vacker 这就很蛋疼了,浏览器访问正常、其它给微信访问的接口也正常、证书检测也正常了,就是通知收不到…
|
26
1iuh 2018-07-01 19:40:50 +08:00
服务器在哪?不在国内的话,可能会有问题,但是不是微信的问题。
|
30
cameo 2018-07-01 20:54:11 +08:00 2
看一下你的服务器是不是启用了 SNI,并且没有 fallback 策略。你会看到支付成功后,立刻有一个握手失败的请求进来,那就是微信的通知请求。猜测原因是微信使用的网络库太老,没有做 SNI 的支持。强烈建议遇到这个问题的同学都提下工单,请求微信修复这一问题。
|
31
Infernalzero 2018-07-01 21:02:33 +08:00
微信是这样的,只能给它的请求特殊处理,不重定向
支付宝就没这等破事 |
32
3dwelcome 2018-07-01 21:53:10 +08:00 via Android 2
微信对 https 加密算法有严格要求,我把加密算法退化到最基本的 rsa cbc 就可以,上 dh 有时都会挂。特烦,别的站就没这个破问题,为此真是独此一家,特殊对待。
|
33
pubby 2018-07-01 22:18:18 +08:00 via Android
15 年开始接入微信支付,一直使用 https 回调,从没遇到这种情况
|
36
raptor 2018-07-01 23:40:36 +08:00
我只想说一句:Windows 就是善于制造其它平台不存在的问题……
|
38
yimo666 2018-12-19 19:11:30 +08:00
windows server 2012 R2 上,同 SNI 问题,建立一个默认的 SSL 站点即可(新建站点,协议 https 端口 443,选一张证书)
|