Download the PHP package ailuracode/wappify without Composer

On this page you can find all versions of the php package ailuracode/wappify. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package wappify

Wappify

Description

This package helps to receive WhatsApp Cloud API messages in Laravel projects.

Installation

To install this package, simply run:

After installing the package, Laravel will auto-load it. You also need to add the service provider in your config/app.php file:

Use

To start using this package in your Laravel project, you only need to run the work queue using the following command:

Security

Webhook verification

POST webhook/{account} deliveries are verified with HMAC-SHA256 (X-Hub-Signature-256 over the raw request body, compared with hash_equals) against the per-account app_secret. Requests with a missing or invalid signature are rejected with 401 and never dispatched. The GET handshake keeps using the independent per-account verify_token and requires no signature.

Provision WHATSAPP_APP_SECRET and WHATSAPP_VERIFY_TOKEN for every account before deploying: HMAC is hard-enforced, so unprovisioned hosts answer 401 on every webhook delivery until they provision. Unknown accounts fail closed (404, nothing dispatched).

Resource access

Resource routes (messages, chat) require authentication by default (middleware_resources is ['auth']; anonymous requests get 401). Deleting a message additionally requires the delete-whatsapp gate, which denies by default: host applications must define ownership, e.g. Gate::define('delete-whatsapp', fn ($user, $message) => $message->owner_id === $user->id). Chat reads are paginated (25 per page, same shape as the messages index).

Queue reliability

ReceiveMessageJob is unique per wamid, so it requires a lock-capable cache driver (redis or database; the sync and array drivers cannot dedupe, and the database driver needs the cache_locks table). Per-job tries, timeout, and backoff come from accounts.*.queue (tries, timeout, backoff) and are passed to queue:listen by wappify:queue. Failed jobs log the error and rethrow so retries apply.

Upgrade notes (breaking)

Command actions

Each use case is one invokable command under AiluraCode\Wappify\Actions, callable from HTTP, the queue, and tests. Jobs are thin queue wrappers (queue config, tries, timeout, backoff, uniqueness) that delegate to commands via the container.

Command Does
VerifyWebhookChallenge Returns the GET challenge for a valid token (403 bad token, 404 unknown account)
EnqueueInboundPayload Dispatches ReceiveMessageJob with the raw body and acknowledges; never parses
IngestInboundMessage Persists an inbound message once by wamid (redelivery-safe), then mark-read + auto-download
ApplyStatusTransition Advances an existing row's lifecycle state; unknown/disallowed transitions are ignored, nothing is inserted
SendTextMessage One transport call + exactly one row
SendDocumentMessage One document send (verbatim Media::getUrl, Document: {name} caption) + exactly one row
SendButtonReplyMessage One button send + exactly one row; logs once, then rethrows for retry
DownloadMessageMedia Attaches media as {wamid-stem}.{ext} (image/audio/video/pdf only); failed() cleans partial files
DeleteMessage Deletes the row, or media-then-row in a transaction; missing rows throw ModelNotFoundException

AiluraCode\Wappify\Support\PayloadMapper is the pure, framework-free mapping layer (raw JSON / transport responses to IncomingMessageData / StatusUpdatePayload).

Single persistence owner rule: commands own the one save() per outbound send. The WhatsAppCloudApi subclass is pure transport and MUST NOT self-persist responses.

Removed legacy surface

The legacy Wappify statics, the whatsapp() / webhook() helpers, and the to*() / is*() transformation shims were removed. Use the commands in AiluraCode\Wappify\Actions (and PayloadMapper) and the typed message models under AiluraCode\Wappify\Models\Messages with the state lifecycle column. See CHANGELOG.md for details.

License

This package is released under the MIT License. For more details, please refer to the LICENSE file.

Credits

Project status

This package is under active development and is continually being improved. It is recommended to stay tuned for future updates for new features and improvements.


All versions of wappify with dependencies

PHP Build Version
Package Version
Requires php Version ^8.0
laravel/framework Version ^8.0|^9.0|^10.0|^11.0
guzzlehttp/guzzle Version ^7.8
netflie/whatsapp-cloud-api Version ^2.0
spatie/laravel-medialibrary Version ^8.0|^9.0|^10.0|^11.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package ailuracode/wappify contains the following files

Loading the files please wait ...