php 在Laravel中动态配置WhatsApp业务API

14ifxucb  于 2023-06-20  发布在  PHP
关注(0)|答案(1)|浏览(158)

我试图在多租户架构的项目中集成WhatsApp业务通知,为了实现这一点,我正在从数据库中检索每个租户的单独设置。
我想通过不同的租户的令牌n电话号码发送WhatsApp通知.
但是这个包不允许我这样做,它只从配置文件加载单个静态配置,我已经分叉了这个包并试图修改它,但仍然无法加载动态配置。
我用的是https://github.com/netflie/laravel-notification-whatsapp包。
在App\Notifications\PaymentNotification中

public function toWhatsapp($notifiable)
    {
        $smtpService = new DynamicService();
        $smtpService->setWhatsapp($this->demand->project);

        $mobile = optional($this->demand->booking)->mobile;

        return WhatsAppTemplate::create()
            ->language('en')
            ->name(Setting::getValue($this->demand->project,'whatsapp_template_key')) 
            ->header(Component::document( Storage::url($this->demand->demand_letter), "{$this->demand->booking->unit->wing}-{$this->demand->booking->unit->number} - Payment Demand" )) 
            ->body(Component::text( $this->demand->paymentSlab->description )) 
            ->to($mobile);
    }

无法找到一个正确的方式来动态地做到这一点,因为WhatsApp通过从app\config\services加载默认配置值来直接向用户发送消息。

64jmpszr

64jmpszr1#

Laravel的Http Facade类可以为您完成这项工作。看看这个使用curl调用WhatsApp Business API的官方文档。
https://developers.facebook.com/docs/whatsapp/cloud-api/guides/send-message-templates#media-based
使用这种方式,您可以很容易地为每个请求传递动态配置。
你可以先在任何API测试工具上测试它,然后在你的项目中实现它,只需要仔细解析数组中的数据,没有在laravel中测试过,但它在我的核心php项目中工作。

相关问题