Jump to content
Bicrypto v4.6.0 + All Plugins
Posted
  • Popular Post

Whatsapp Gateway | Multi Device


This script has been completely modified and many important features and fixes have been added by @Magd Almuntaser
He is now responsible for the updates of this script and has full intellectual property rights
So no one will violate the terms of use that he has set

Latest Features:
1. WhatsApp Account Connectivity

All types of WhatsApp Accounts to be able to connect with WhatsApp Gateway (Multi Number & Multi Device);
Ease of the WhatsApp Account connectivity process with a QRcode Scan or with an Authentication Code directly from your device.

2. Message

Availability of various types of (text messages, media, polls, lists, locations, VCard) can easily be used by you;
You can send mass messages for your marketing campaign activities, promotions or business programs easily and on a scheduled basis;
Setup automatic message replies with more natural (alami) and selected keywords for operational optimization of use;
Manage sent message history with automatic and scheduled deletions.

4. Integration

You can easily integrate your WhatsApp Account with various (AI) artificial intelligence services, namely ChatGPT, DALL-E, Gemini, and Cloude with API authentication codes only;
You can easily activate Ai for Single or Multiple use on your WhatsApp Account;
You can easily select Ai in your WhatsApp messages for WhatsApp Group, Private, or Both types;
You can easily setup call rejection automatically if there is a (Call) call and provide a specific response or information;
Setup your WhatsApp and Ai accounts more naturally (alami) with "Already read" status";
Setup your WhatsApp and Ai accounts more naturally (natural) with the status "Typing...".
You can easily integrate and communicate your services with the Webhook mechanism of WhatsApp Gateway | Multi Device.

5. Application Settings

Nowadays you can easily and quickly carry out the process of setting up the WhatsApp Gateway | Multi Device* application by Magd Almuntaser with the settings panel;
You can easily set up applications based on server ecosystem, smtp, etc quickly;
Multi language support (english, Indonesian, Indian, Spanish and Arabic) for easy use.

6. Developer Options

Currently WhatsApp Gateway | Multi Device* by Magd Almuntaser has provided various API services for your easy development consisting of:
        1). Send Message API
        2). Send Media API
        3). Send Poll API
        4). API Send Button
        5). Send API Templates
        6). Send List message API
        7). Send Location API
        8). Send VCard API
        9). Generate QR API
        10). Disconnect devices
        11). Create User API
        12). User Info API
        13). Device Info API
        14). Check Number API
        15). Webhook Example

Ease of setup and availability of the (API Key) API Key for authentication and authorization of your development process.

7. Security

Currently there is a 2 factor authentication (2FA) service available to maintain the security and comfort of application access;
A password reset service is available if you forget your account login information.


Coming Soon:

1. Landing page for Software as Service services (Subscription Services);
2. Payment gateway page management (QRIS, BCA virtual account, PayPal, Stripe);
3. Added user account management;
4. (ticket) obstacle reporting service for users and managers;
.. And many more.


Whatsapp Gateway | Multi Device

  • Replies 4.4k
  • Views 275.5k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Magd Almuntaser
    Magd Almuntaser

    What's new so far in version 9.0.0: - Added landing page (welcome page). - Added plans system. - Added Manage Languages system. - Added (landing page) edit page. - Added ticket system. - Added cronjob

  • Magd Almuntaser
    Magd Almuntaser

    What's new so far in version 9.0.0: - Added Landing page (Homepage). - Added Plans System. - Added Manage Payment gateways. - Added Manage Languages system. - Added (Homepage) edit page. - Added Ticke

  • Magd Almuntaser
    Magd Almuntaser

    What's new in version 9.0.0 so far: - Added landing page (welcome page). - Added plans system. - Added cronjob page. - Added Multi-Keyword in autoreply. - Added send message with footer. -

Posted Images

Featured Replies

On 8/27/2023 at 10:20 AM, Magd Almuntaser said:


you can download from here decoded and fix many errors 5.5.0: @Bajra Al Faruq

easyupload .io/3j7cjg


Remove space from link.

NO file in this link , Error at Autoreply Function , anybody is same ?

Edited by Testeria Development

On 8/19/2023 at 1:28 AM, Magd Almuntaser said:

Finally i've fixed the problem when you enable autoreply ..
replace this code with your file (server/controllers/incomingMessage.js) :

const { dbQuery } = require('../database/index'),
  { parseIncomingMessage, formatReceipt } = require('../lib/helper')
require('dotenv').config()
const axios = require('axios'),
  {
    isExistsEqualCommand,
    isExistsContainCommand,
    getUrlWebhook,
  } = require('../database/model'),
  IncomingMessage = async (whatsa, usera) => {
    try {
      let quoted = false
      if (!whatsa.messages) {
        return
      }
      whatsa = whatsa.messages[0]
      const namea = whatsa?.pushName || ''
      if (whatsa.key.fromMe === true) {
        return
      }
      if (whatsa.key.remoteJid === 'status@broadcast') {
        return
      }
      const partinumber =
          whatsa.key.participant && formatReceipt(whatsa.key.participant),
        {
          command: commanda,
          bufferImage: bufimagea,
          from: froma,
        } = await parseIncomingMessage(whatsa)
      let texta, replya
      const spilia = usera.user.id.split(':')[0],
        isrepl = await isExistsEqualCommand(commanda, spilia)
      isrepl.length > 0
        ? (replya = isrepl)
        : (replya = await isExistsContainCommand(commanda, spilia))
      if (replya.length === 0) {
        console.log(whatsa)
        const urla = await getUrlWebhook(spilia)
        if (urla == null) {
          return
        }
        const objecta = await sendWebhook({
          command: commanda,
          bufferImage: bufimagea,
          from: froma,
          url: urla,
          participant: partinumber,
        })
        if (objecta === false) {
          return
        }
        if (objecta === undefined) {
          return
        }
        if (typeof objecta != 'object') {
          return
        }
        quoted = objecta?.quoted ? true : false
        texta = JSON.stringify(objecta)
      } else {
        replyorno =
          replya[0].reply_when == 'All'
            ? true
            : replya[0].reply_when == 'Group' &&
              whatsa.key.remoteJid.includes('@g.us')
            ? true
            : replya[0].reply_when == 'Personal' &&
              !whatsa.key.remoteJid.includes('@g.us')
            ? true
            : false
        if (replyorno === false) {
          return
        }
        quoted = replya[0].is_quoted ? true : false
        texta =
          process.env.TYPE_SERVER === 'hosting'
            ? replya[0].reply
            : JSON.stringify(replya[0].reply)
      }
      return (
        (texta = texta.replace(/{name}/g, namea)),
        await usera
          .sendMessage(whatsa.key.remoteJid, JSON.parse(JSON.parse(texta)), {
            quoted: quoted ? whatsa : null,
          })
          .catch((errora) => {
            console.log(errora)
          }),
        true
      )
    } catch (lasterrora) {
      console.log(lasterrora)
    }
  }
async function sendWebhook({
  command: msga,
  bufferImage: newimga,
  from: newfroma,
  url: newurla,
  participant: newparta,
}) {
  try {
    const senda = {
        message: msga,
        bufferImage: newimga == undefined ? null : newimga,
        from: newfroma,
        participant: newparta,
      },
      headra = { 'Content-Type': 'application/json; charset=utf-8' },
      dataa = await axios
        .post(newurla, senda, headra)
        .catch(() => {
          return false
        })
    return dataa.data
  } catch (newrerrora) {
    return console.log('error send webhook', newrerrora), false
  }
}
module.exports = { IncomingMessage: IncomingMessage }


and tell me if your autoreply work !!
i've sent this fix to the developer

Its not work sir, autoreply still error 🥲

  • 2 weeks later...

@ronipriyatna @We Blend Web use this information to configure this file and the cronjob

On 6/17/2023 at 2:08 AM, Ardian said:

config cronjob in shared hosting

To make it work you must edit file "custom-route.php" at "webhome/routes/custom-routes.php with:

?php

use Illuminate\Support\Facades\Route;

use Illuminate\Support\Facades\Artisan;

Route::get('generate', function (){
return \Illuminate\Support\Facades\Artisan::call('storage:link');
})->name('generate');

Route::get('/schedule-run', function () {
return Illuminate\Support\Facades\Artisan::call('schedule:run');
})->name('schedule-run');


Route::get('/clear-cache',function(){
dd('adsf');
return Artisan::call('optimize');
})->name("cache.clear");
?>

----------------------

Now you can test: www.yourweb.com/schedule-run

For the cronjob i´m using this two every five minutes:

cd /YOURHOMEE/artisan schedule:run 1 >/dev/null 2>&1

curl "https://YOURWEB.com/schedule-run" >/dev/null 2>&1

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Latest Updated Files