inisiatif/whatsapp-qontak-php 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

inisiatif/whatsapp-qontak-php

Composer 安装命令:

composer require inisiatif/whatsapp-qontak-php

包简介

Sending WhatsApp message using Qontak

README 文档

README

Sending WhatsApp message via Qontak API, using HTTPlug.

Installation

First install HTTPlug adapter or client and PSR-17 package compatible

composer require php-http/curl-client laminas/laminas-diactoros

and then install this package :

composer require inisiatif/whatsapp-qontak-php

Usage

Non framework usage

First your must be created a valid and approved WhatsApp template.

use Inisiatif\WhatsappQontakPhp\Client;
use Inisiatif\WhatsappQontakPhp\Credential;
use Inisiatif\WhatsappQontakPhp\Message\Body;
use Inisiatif\WhatsappQontakPhp\Message\Button;
use Inisiatif\WhatsappQontakPhp\Message\Header;
use Inisiatif\WhatsappQontakPhp\Message\Message;
use Inisiatif\WhatsappQontakPhp\Message\Receiver;
use Inisiatif\WhatsappQontakPhp\Message\Language;

$credentials = new Credential('username', 'password', 'clientId', 'clientSecret');

$client = new Client($credentials);

// Create message receiver
$receiver = new Receiver('+6281318788271', 'Nuradiyana');

// [Optional] Create language, supported 'en' and 'id', default is 'id'
$language = new Language('id');

// [Optional] Create params message body
$body = [
    new Body('Nuradiyana'),
    new Body('Gorengan'),
];

// [Optional] Create header message, support "DOCUMENT", "VIDEO", "IMAGE"
$header = new Header(
    Header::TYPE_DOCUMENT, 'https://example.com/link-to-file-url.pdf', 'file-name.pdf'
);

// [Optional] Create buttons
$buttons = [new Button('url', 'https://example.com')];

$message = new Message($receiver, $language, $body, $header, $buttons);
$response = $client->send('templateId', 'channelId', $message);

// Message Id and Receiver Name
echo $response->getMessageId();
echo $response->getName();

// All raw data
\var_dump($response->getData());

Using in Laravel as Notification Channel

  1. Add new config value in config/services.php and then setting each value in .env
'qontak' => [
    'username' => env('QONTAK_USERNAME', null),
    'password' => env('QONTAK_PASSWORD', null),
    'client_id' => env('QONTAK_CLIENT_ID', null),
    'client_secret' => env('QONTAK_CLIENT_SECRET', null),
],
  1. Add this code in register method AppServiceProvider
$this->app->singleton(\Inisiatif\WhatsappQontakPhp\ClientInterface::class, function () {
    return $this->app->runningUnitTests() ? \Inisiatif\WhatsappQontakPhp\ClientFactory::makeTestingClient() :  \Inisiatif\WhatsappQontakPhp\ClientFactory::makeFromArray(
        config('service.qontak')
    );
});
  1. Then create or register ContakChannel in notification class
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Inisiatif\WhatsappQontakPhp\Message\Message;
use Inisiatif\WhatsappQontakPhp\Message\Receiver;
use Inisiatif\WhatsappQontakPhp\Illuminate\Envelope;
use Inisiatif\WhatsappQontakPhp\Illuminate\QontakChannel;
use Inisiatif\WhatsappQontakPhp\Illuminate\QontakNotification;

class InvoicePaid extends Notification implements QontakNotification
{
    use Queueable;
 
    public function via($notifiable): array
    {
        return [QontakChannel::class];
    }
 
    public function toQontak($notifiable): Envelope
    {
        // First create message object
        $receiver = new Receiver('+6281318788271', 'Nuradiyana');
        $message = new Message($receiver);
        
        // Then create envelope object and return it
        return new Envelope('templateId', 'channelId', $message);
    }
}

Testing

🧹 Fixing codebase with Easy Coding Standard:

composer ecs

⚗️ Run static analysis using Psalm:

composer psalm

🚀 Run the entire test suite:

composer test

License

The MIT License (MIT). Please see License File for more information.

inisiatif/whatsapp-qontak-php 适用场景与选型建议

inisiatif/whatsapp-qontak-php 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 10.89k 次下载、GitHub Stars 达 5, 最近一次更新时间为 2022 年 09 月 14 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 inisiatif/whatsapp-qontak-php 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 inisiatif/whatsapp-qontak-php 我们能提供哪些服务?
定制开发 / 二次开发

基于 inisiatif/whatsapp-qontak-php 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 10.89k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 9
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 1
  • Forks: 8
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-09-14