【云之家】公共号消息发送教程

大家好,我是Max,目前在乱搞业务部门工作。我的工作职责是开发一些有趣的应用,我对于创造出奇奇怪怪的应用非常感兴趣。

我是一个喜欢探索新事物的人,喜欢尝试新技术和新方法,从中发掘出新的可能性。在我的职业生涯中,我一直致力于创造出有用的和有趣的产品,帮助人们解决实际问题。

我希望通过我的工作和生活经验,能够启发到更多的人,让他们也能够拥有创新思维和积极向上的态度。如果您有任何关于开发或者生活上的问题,欢迎和我交流,希望我们可以一起成长。同时,如果有大神看到我的文章请划过,因为我还有很多需要学习和提升的地方。

让我们开始一段惊险刺激的开发之旅吧!

首先,我们需要搭建一个PHP环境,这是我们实现这个项目的基础。我们将用PHP作为我们的开发语言,因为PHP是一种广泛使用的语言,具有出色的性能和可扩展性。我们将使用PHP来编写应用程序的核心逻辑,包括处理数据、控制流程、安全性等方面。

接下来,我们将使用ApiPost来测试我们的应用程序。ApiPost是一种测试工具,它可以模拟真实的API请求和响应,从而帮助我们测试我们的应用程序的性能和稳定性。我们将使用ApiPost来测试我们的应用程序的各种功能和场景,以确保我们的应用程序能够稳定地运行,同时,也能够满足用户的需求。

当我们开始着手开发应用程序时,我们需要考虑到各种应用场景想法。例如,我们可以开发一个验证码、通知、提醒还可以结合卡片工具来做好看的各类收集表。

以下是开发流程:

1.搭建一个PHP环境 

大家可以使用PHP.CN一件搭建功能,或用宝塔等快捷PHP环境,这里就不带大家安装了。

PHPCN工具下载地址

phpStudy V8.1下载(Win64位) - 官方最新版本(不断更新)-php中文网工具下载

2.安装代码工具

现在比较流行的开发工具如下,排名不分上下。

1.PhpStorm;2.EditPlus;3.PHPDesigner;4.SublimeText;5.VSCode;6.ZendStudio;7.Norepad++;8.PHPCoder;9.NetBeans

我个人比较喜欢用Visual Studio Code,用什么工具都没关系,黑猫白猫捉到老鼠都是好猫

3.中间件

官方武功秘籍:文档中心

官方提供PHP模型:

<?php
   function http_post_data($url, $data_string) {

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json; charset=utf-8',
            'Content-Length: ' . strlen($data_string))
        );
        ob_start();
        curl_exec($ch);
        $return_content = ob_get_contents();
        ob_end_clean();

        $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        return array($return_code, $return_content);
    }

    $pubkey = "12345678123456781234567812345678";

    //公共号密钥验证规则pubtoken=sha(no,pub,公共号.密钥pubkey,nonce,time)
    $a = array("19901","XT-87e1732f-xxxx",$pubkey,"123456","1395460000");
    sort($a,SORT_STRING);
    $b = implode("",$a);
    echo $b."\r\n";
    $pubtoken = sha1($b);
    echo $pubtoken."\r\n";

    $data_string = '{ "from": { "no":"19901", "pub":"XT-87e1732f-xxxx", "time":"1395460000", "nonce":"123456", "pubtoken":"'.$pubtoken.'" }, '.
           '"to": [ { "no":"19901", "user": ["cde2b88a-xxxx"], "code":"0" } ], "type":2, "msg": {"text":"金蝶测试"}}';
    $url = "https://yunzhijia.com/pubacc/pubsend";
    list($return_code, $return_content) = http_post_data($url, $data_string);
    echo "返回值:".$return_code."\r\n";
    echo "返回内容:".$return_content."\r\n\r\n";
?>

应我自己实际使用进行调整后的代码

<?php

   //POST接收POST
   $psot_text = $_POST["text"]; 
    
   //使用方法
   function http_post_data($url, $data_string) {

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json; charset=utf-8',
            'Content-Length: ' . strlen($data_string))
        );
        ob_start();
        curl_exec($ch);
        $return_content = ob_get_contents();
        ob_end_clean();

        $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        return array($return_code, $return_content);
    }

    //时间戳(10位unix时间戳)
    $sjc = time();


    //计数随机数
    function randomkeys($length) {

    $returnStr='';
    
    $pattern = '1234567890';
    
    for($i = 0; $i < $length; $i ++) {
    
    $returnStr .= $pattern {mt_rand ( 0, 61 )}; //生成php随机数
    
    }
    
    return $returnStr;
    
    }
    
    //计算出8位随机数
    $sz = randomkeys(8);

     
    //基础参数说明
    //公共号密钥验证规则pubtoken=sha(no,pub,公共号.密钥pubkey,nonce,time)
    //no        团队号eid  
    //pub	    公共号id (如何获得公共号ID和公共号密钥)
    //pubkey	公共号pubsecret
    //nonce	    随机唯一值
    //time	    10位unix时间戳

    $eid = "******"; //你要填写你自己的eid
    $pub = "******"; //公共号id
    $pubkey = "***"; //公共号pubsecret
    $nonce = $sz;
    $time =  $sjc;
     
    //消息文本
    $text = "测试";



    //频率限制
    //公共号服务端会限制公共号发送的频率,同一from内容不能在一分钟内重复发送,否则返回5005错误。
    //如果有密集的业务消息发送,必须保证from内容不同,例如不同的time,nonce。


    //计算pubtoken
    $a = array($eid, $pub,$pubkey,$nonce, $time);
    sort($a,SORT_STRING);
    $b = implode("",$a);
    //echo $b."\r\n";
    $pubtoken = sha1($b);
    //echo $pubtoken."\r\n";


    //消息
    $data_string = '{ 
        "from": { 
            "no":"'.$eid.'", 
            "pub":"'.$pub.'", 
            "time":"'.$time.'", 
            "nonce":"'.$nonce.'", 
            "pubtoken":"'.$pubtoken.'" 
        }, '.
           '"to": [], 
                "type":2, 
                "msg": {
                    "text":"'.$text.'" 
                }
            }';
    $url = "https://yunzhijia.com/pubacc/pubsend";
    list($return_code, $return_content) = http_post_data($url, $data_string);
    echo "返回值:".$return_code."\r\n";
    echo "返回内容:".$return_content."\r\n\r\n";
?>

4.使用ApiPost发送POST请求

工具下载地址:Apipost-API 文档、设计、调试、自动化测试一体化协作平台

状态码返回200表示正常

关于其他返回值说明如下:

• 400: 检查Content-Type是否为application/json 或确认body是否为空字符串

• 500: 常规错误,根据message字段来排查相关错误。

• 5000: 检查json各个参数,object/array类型要注意区分

• 5001:公共号不存在或未审核

• 5002:数据长度超限错误,如:传入数据长度超过了1.5M

• 5003:发送的公司或用户错误,如:发送到其他企业,无发送用户或错误的openid

• 5004:公共号密钥验证失败

• 5005:发往公共号消息过多,请等x分钟

• 5102: 频率太快,请稍后再试

• 6001: 公共号平台内部错误

教程到这里就要结束了,但是如果你还有任何疑问或者需要更多的帮助,不要犹豫,一定要在留言区留下你的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值