大家好,我是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: 公共号平台内部错误
教程到这里就要结束了,但是如果你还有任何疑问或者需要更多的帮助,不要犹豫,一定要在留言区留下你的问题。