定制 andriwil0176/laravel-watzap 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

andriwil0176/laravel-watzap

最新稳定版本:v1.0.0

Composer 安装命令:

composer require andriwil0176/laravel-watzap

包简介

Laravel package wrapper for Watzap API (official endpoints)

README 文档

README

CI Latest Stable Version Total Downloads License

Laravel package untuk integrasi Watzap API.
Mendukung multi-number, queue dengan random delay, round-robin sender, dan webhook handler.

✨ Features

  • ✅ Check API status
  • ✅ Validate WhatsApp number
  • ✅ Grab WhatsApp groups & participants
  • ✅ Send Text, Image (URL), File (URL)
  • ✅ Send to Group (Text, Image, File)
  • ✅ Webhook management (set, get, unset)
  • ✅ Queue support (default ON) dengan random delay antar pesan (30–120s)
  • ✅ Multi-number round-robin (auto pilih number_key dari array config)

📦 Install

composer require andriwil0176/laravel-watzap

Publish config:

php artisan vendor:publish --tag=watzap-config

⚙️ Configuration

Tambahkan ke .env:

WATZAP_API_KEY=your_api_key_here
WATZAP_NUMBER_KEYS=key1,key2,key3

# optional overrides
WATZAP_BASE_URL=https://api.watzap.id/v1
WATZAP_USE_QUEUE=true
WATZAP_MIN_DELAY=30
WATZAP_MAX_DELAY=120

🚀 Usage

Via Facade

use Watzap;

Watzap::sendText('6281234567890', 'Hello world!');

Via Dependency Injection

use Andriwil0176\Watzap\WatzapClient;

class DemoController extends Controller
{
    public function send(WatzapClient $watzap)
    {
        return $watzap->sendImage('6281234567890', 'https://example.com/image.jpg', 'Check this out!');
    }
}

Example Artisan Command

php artisan watzap:send 6281234567890 "Test message"

🧪 Testing

Run PHPUnit:

vendor/bin/phpunit --testdox

🔗 Webhook

Route default:

POST /watzap/webhook

Controller akan mengembalikan payload apa adanya.
Kamu bisa extend untuk handle event incoming_chat, dll.

📱 Phone Number Utilities

Selain integrasi ke API Watzap, package ini juga menyediakan helper untuk validasi dan normalisasi nomor WhatsApp ke format internasional (E.164).

🔍 Cek format nomor $client = app(\Andriwil0176\Watzap\WatzapClient::class);

$client->isValidNumberFormat('6281234567890'); // true (sudah format E.164) $client->isValidNumberFormat('081234567890'); // false (masih format lokal) $client->isValidNumberFormat('12025550123'); // true (nomor US)

🔄 Normalisasi nomor lokal $client = app(\Andriwil0176\Watzap\WatzapClient::class);

// Indonesia (default kode negara 62) $client->normalizeNumber('08123456789'); // Hasil: "628123456789"

// UK (kode negara 44) $client->normalizeNumber('02071838750', '44'); // Hasil: "442071838750"

⚠️ WhatsApp hanya menerima format internasional (E.164). Tidak ada nomor WhatsApp valid yang dimulai dengan 0.

🏗 Example App

Repo ini juga menyertakan folder example/ yang berisi:

  • Controller demo (WatzapDemoController)
  • Artisan Command demo (SendWatzapCommand)

🛠 Development Notes

  • Namespace default: Andriwil0176\Watzap → ubah sesuai username/org kamu.
  • Queue default ON dengan delay random (30–120s). Bisa dimatikan via WATZAP_USE_QUEUE=false.
  • Round-robin akan otomatis memilih number_key dari array config.

📜 License

MIT License

Copyright (c) 2025 Andri Willyarso

Permission is hereby granted, free of charge, to any person obtaining a copy...

统计信息

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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-09-30