本教程主要是实现当客户下单后,可以在telegram社交软件上收到订单通知消息。
基于独角开发的telegram消息通知模块核心代码由“@彼萌” 提供
本人在此基础上增加了以下功能:
1、订单类型
2、下单时间
3、修复了原手机端的消息不能换行的问题
4、开发了Bark的消息通知
参阅文章:
1、创建telegram机器人
https://merlinblog.xyz/wiki/telebot.html
只需要创建,不需要托管
2、获取用户ID(如果你只希望机器人给某个用户发消息)
https://bigone.zendesk.com/hc/zh-cn/articles/360008014894-%E5%8D%81-%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E8%87%AA%E5%B7%B1%E7%9A%84-Telegram-userid
3、获取群组ID(如果你想机器人给群组发消息)
https://www.it-swarm.cn/zh/telegram/%E7%94%B5%E6%8A%A5%E6%9C%BA%E5%99%A8%E4%BA%BA-%E5%A6%82%E4%BD%95%E8%8E%B7%E5%BE%97%E7%BE%A4%E8%81%8Aid%EF%BC%9F/1055556241/
4、消息内容换行问题
https://www.itranslater.com/qa/details/2583202015098700800
在开始配置前,请确保:
1、服务器可以连通国外网站。
2、已经获得telegram机器人的api,和你想要通知给那个用户的id
例如:我的网站目录是faka
路径:/www/wwwroot/faka/app/Service/OrderProcessService.php
/*Telegram 服务通知*/use App\Jobs\Telegram;
// 开启Telegram
Telegram::dispatch($order);
www/wwwroot/faka/app/Jobs/Telegram.php
贴入代码:
<?php
namespace App\Jobs;
use App\Models\Order;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class Telegram implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* 任务最大尝试次数。
*
* @var int
*/ public $tries = 2;
/**
* 任务运行的超时时间。
*
* @var int
*/ public $timeout = 30;
/**
* @var Order
*/ private $order;
/**
* Create a new job instance.
*
* @return void
*/ public function __construct(Order $order)
{
$this->order = $order;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$bot_api_key = ''; // 填写机器人 API
// 判断是自动发货还是手动发货
if($this->order->type == 1){
$type = "【自动发货】通知";
}else{
$type = "【手工订单】通知";
};
//订单创建时间
$time = $this->order->created_at;
$text = urlencode($type."\n时间:".$time."\n商品:" .$this->order->title."\n价格:".$this->order->actual_price."¥\n邮箱:".$this->order->email."\n订单号:".$this->order->order_sn);
$tgid = ''; //填写TG ID
if($text){
$url = "https://api.telegram.org/bot".$bot_api_key."/sendMessage?chat_id=".$tgid."&text=".$text."&parse_mode=html";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec($ch);
curl_close($ch);
}else{
echo "Please Input";
}
}
}
将你的机器人API和ID填入即可。
然后,就去看一下日志,看看服务是否起来,测试一下能不能收到通知。
原文链接:独角发卡2.0版本增加订单消息Telegram电报通知优化版-已修复移动端消息内容不换行,转载请注明来源!