PHP调用vivo快应用消息推送接口

PHP通过curl方式调用vivo快应用消息推送

       最近完成一个需求,因为需要用到vivo快应用消息推送接口,将这个过程分享给大家参考。

       首先是我们的加密以及调用接口逻辑,代码如下:

/**
 * viVo密钥
 * @param array $post
 * @param string $secret
 * @return string
 */
function viVoSign($post = array(), $secret = "")
{
    //通过键进行排序 a,b,c
    ksort($post);
    $str = '';
    //循环拼接参数
    foreach ($post as $key => $value) {
        //拼接参数
        $str .= $value;
    }
    $str = $str . $secret;
    //加密
    $sign = strtolower(md5($str));
    //返回
    return $sign;
}

/**
 * 秒转毫秒
 * @param $timestamp
 * @return string
 */
function msecToSec()
{
    return sprintf('%.0f', time() * 1000);
}


/**
 * viVo请求发送
 * @param $remote_server
 * @param $post_string
 * @param string $authToken
 * @return mixed
 */
function viVoRequestByCurl($remote_server, $post_string, $authToken = "")
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $remote_server);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    //根据情况展示
    if ($authToken !== "") {
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'authToken:' . $authToken,
            'Content-Type: application/json;charset=utf-8'
        ));
    } else {
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json;charset=utf-8'
        ));
    }
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

       然后需要调用接口获取accessToken,代码如下:

$appId = "自己的appId";
$appKey = "自己的appKey";
$secret = "自己的secret";
$url = "https://api-push.vivo.com.cn/message/auth";
$post['appId'] = $appId;
$post['appKey'] = $appKey;
$post['timestamp'] = msecToSec();
$sign = viVoSign($post, $secret);
$post["sign"] = $sign;
$post_string = json_encode($post);
$res = viVoRequestByCurl($url, $post_string);
$result = json_decode($res, true);
if ($result["result"] == 0) {
    $authToken = $result["authToken"];
} else {
    $authToken = "";
}

      拿到accessToken后,我们便可以发送消息推送,代码如下:

$url = "https://api-push.vivo.com.cn/message/send";
$post['regId'] = '用户的regId';
$post['alias'] = '';
$post['notifyType'] = 2;
$post['title'] = '消息订阅';
$post['content'] = '欢迎使用小程序';
$post['skipType'] = 1;
$post['skipContent'] = '';
$post['requestId'] = '20200901';
$post_string = json_encode($post);
$res = viVoRequestByCurl($url, $post_string,"上一步拿到的accessToken");

      这样我们就成功完成vivo快应用的消息推送,下一篇将给大家介绍华为快应用消息推送。

0条评论

发表评论