首页 » 技术教程 » 独角发卡2.0版本增加订单消息Telegram电报通知优化版-已修复移动端消息内容不换行

独角发卡2.0版本增加订单消息Telegram电报通知优化版-已修复移动端消息内容不换行

 

本教程主要是实现当客户下单后,可以在telegram社交软件上收到订单通知消息。

独角发卡2.0版本增加订单消息Telegram电报通知优化版-已修复移动端消息内容不换行

独角发卡2.0版本增加订单消息Telegram电报通知优化版-已修复移动端消息内容不换行


发卡程序:独角发卡2.0
网址:https://github.com/assimon/dujiaoka/releases

基于独角开发的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模块

/*Telegram 服务通知*/
use App\Jobs\Telegram;
独角发卡2.0版本增加订单消息Telegram电报通知优化版-已修复移动端消息内容不换行

独角发卡2.0版本增加订单消息Telegram电报通知优化版-已修复移动端消息内容不换行

第二步:在订单付款后开启telegram服务

// 开启Telegram
Telegram::dispatch($order);
独角发卡2.0版本增加订单消息Telegram电报通知优化版-已修复移动端消息内容不换行

独角发卡2.0版本增加订单消息Telegram电报通知优化版-已修复移动端消息内容不换行

第三步:创建Telegram.php文件

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填入即可。

然后,就去看一下日志,看看服务是否起来,测试一下能不能收到通知。

如果你看了本教程还是搞不定,可以找我帮忙。有偿提供咨询,不要白嫖哦,别人没义务免费帮你。电报联系:https://t.me/hellokvm

原文链接:独角发卡2.0版本增加订单消息Telegram电报通知优化版-已修复移动端消息内容不换行,转载请注明来源!

2