You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.6 KiB
PHP

<?php
namespace App\Services;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Crypt;
class SendMessgeService
{
private $secretKey;
private $userid;
private $url;
private $timestamp;
public function __construct()
{
$this->secretKey = "4siCISCjV9BKdM38";
$this->userid = "FSKDX";
$this->url = "http://10.50.120.91:8081/umc/message/send2";
$this->timestamp=now()->format('YmdHis') . '00';
}
private function encrypt($data)
{
// $iv = substr($this->secretKey, 0,16);
$iv = $this->timestamp;
$key = substr($this->secretKey, 0, 16);
$cipher = "AES-128-CBC";
$encrypted = openssl_encrypt($data, $cipher, $key, OPENSSL_RAW_DATA, $iv);
return base64_encode($encrypted);
}
public function sendMessage($mobiles, $content, $type = 2)
{
// $timestamp = now()->format('YmdHis') . '00';
$body = json_encode([
'mobiles' => $mobiles,
'content' => $content,
'userid' => $this->userid,
'type' => $type
]);
$encryptedBody = $this->encrypt($body);
$response = Http::withHeaders([
'Content-Type' => 'application/json; charset=utf-8'
])->post($this->url, [
'timestamp' => $this->timestamp,
'userid' => $this->userid,
'cntx' => $encryptedBody,
'custid' => $this->timestamp // For example purposes, use timestamp as custid
]);
$res=$response->json();
// if(isset($res['result']) and $res['result']==="0"){
//
// }
return $res;
}
}