推送无法发送成功

jpush
标签: #<Tag:0x00007fb845ed19d0>

#3
$url="https://api.jpush.cn/v3/push";
$param='{
                "platform":"android",
                "audience":{"registration_id":["190e35f7e0796047329"]},
                "notification" : {
                    "android": {
                        "alert": "111111111111",
                        "title": "",
                        "builder_id": "1",
                        "extras": {
                            "type": "1",
                            "typeid": "0"
                        }
                    }
                },
                "options":{"time_to_live" : 60,"apns_production":false}
                }';
$header=["Authorization:Basic ****************",
  "Content-Type:application/json"];

#4
  function request_post($url="",$param="",$header="") {
        if (empty($url) || empty($param)) {
        return false;
        }
        $postUrl = $url;
        $curlPost = $param;
        $ch = curl_init();//初始化curl
        curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
        curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
        curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
        curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
        curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
        // 增加 HTTP Header(头)里的字段 
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        // 终止从服务端进行验证
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        $data = curl_exec($ch);//运行curl
        curl_close($ch);
        return $data;
    }

    $res=request_post($url,$param,$header);

#5

这边排查应该是服务器方面的问题,有什么解决方案可以从服务器端解决的吗


#6

使用以下命令
nsloookup 域名
ping 域名
mtr 域名
tracepath 或者 traceroute 域名
telnet 域名 端口

排查一下,看具体是哪里不通,是否绑定了具体的 IP


#7

最后的telnet有问题, connect to address *******: Connection refused


#9

详细信息给下,检查端口 443,和防火墙


#10

防火墙是关闭的,443端口的意思是 我的域名要支持443端口访问吗


#11

开 443端口,允许访问我们极光的域名。

我建议你将你使用命令得到的结果,完整的信息提供给我们来分析一下。


#12


#13


#14

你这不对啊,怎么命令里面的域名是自己的域名,域名写极光的

api.jpush.cn

端口写 443,重新获取下信息


#15

看看这回呢


#16


#17

你们直接curl调用试一下

curl https://api.jpush.cn/v3/push 看是否也报错502?


#18

502是从浏览器看到的状态,从curl看的话 没问题


#19

从浏览器看到的状态?
你之前怎么请求的?

建议使用 curl 、postman 工具,或者官方服务端SDK做请求。


#20

在php代码里直接运行的话 从浏览器看就是502


#21

这样,你跑 PHP SDK 的 example 试一下


#22

官方的试过了 也是不行,执行到\src\JPush\Http.php的63行$output = curl_exec($ch); 浏览器报502错误


#23

请按照所说的用 命令行测试

下面是我们这边的测试结果