Home  >  Article  >  Backend Development  >  php implements sending text messages

php implements sending text messages

小云云
小云云Original
2018-03-26 13:12:2014372browse

In this article, we will reveal the operation of using PHP to send SMS verification codes. Do you think that when you used to register an account on a mobile app, when you clicked to send the verification code, it would take a few seconds? With a beep, the verification code is sent to your phone. Do you think it’s amazing?

1. Since we need to write the login and registration API interface in our business, we learned about the front-end and back-end interaction process of mobile phone number registration;

( 1) The user operates the client and clicks to send the verification code, (then the client sends an ajax request, and the button is in 60s silent time)

(2) The back-end logic layer accepts the passed mobile phone number and verifies whether the format is Legal, enter the database to match whether it exists

(3) Generate a verification code, store it in the session, and then send curl to the third-party SMS interface link

(4) Configure the third-party SMS platform, Send verification code information to the user with the specified mobile phone number

2. Today we mainly explain the configuration of the third-party platform and the logic of background processing;

3. The selected third-party platform is: (You can also choose other platforms, the principles are almost similar)

(1) Saidi Cloud Communication (https://www.mysubmail.com)

(2) Register, real-name authentication, enter products and services, create a new template, and its template syntax can be viewed in its supporting documentation

(3) Go to " Create/Manage AppIdD" column, create and enable the project, and then generate the default "APPID" and "APPKEY"


## (4) Go to the home page, click on the "View API Development Documentation" link to get the link to the POST request:


## https://api.mysubmail.com/message/xsend


4.

Backend logic development:


Core: Create verification code -> Encapsulate POST request function -> Send verification code to third-party platform -> Then forward it to the user’s mobile phone by the third party


* Since Sina blog does not support markdown, only the core code and the places where you have stepped on the big pits are posted:


## (1) Send the verification code to the third-party platform: (No pitfalls, the logic is written down very smoothly

)

private function sendMessage()
 {
        $appId = "xxxxx";
        $appKey = "36426a9xxxxxxxxxxxx7bed8583a3c";
        $code = $this->makeCode(6);

        $data = [
            "appid" => $appId,
            "to" => $this->phone,
            "project" => "FoJ494",
            "vars" => '{"code":' . $code . ',"time":"60"}',
            "signature" => $appKey,
        ];

        $res = $this->httpRequest($data);

        var_dump($res);
}

(2) Request a link to send the verification code data to the third-party platform (here is Super Big pit

)

-- Okay, let's write it down normally:

private function httpRequest($data)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $this->RequestUrl);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    if (isset($data)) {
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    }

    $res = curl_exec($curl);
    var_dump(curl_error($curl)); //打印请求错误
    curl_close($curl);
    return $res;
}

Then report an error:

'SSL certificate problem: unable to get local issuer certificate' , then don't worry, continue the operation according to the official channels:

--- Go to https://curl.haxx.se/docs/caextract.html to download cacert.pem

--- Then paste the cacert.pem under down into the php directory, then go to php.ini to find: "curl.cainfo", and modify it to:

curl. cainfo = "C:/wamp/bin/php/php7.0.10/cacert.pem", okay, it’s useless

, continue to report errors! !

--- Then continue to find solutions, Then according to the online information, the ";openssl.cafile" below it was modified to: openssl.cafile= "C:/wamp/bin/php/php7.0.10/cacert.pem", okay, =_=! Continuing to report errors, my heart is already devastated!

--- Then, I tried removing the double quotes, adding single quotes, and removing the quotes, and my heart started to freeze! Still SSL certificate error! !

--- Behind me, I continued surfing on Google with a feeling of stagnant water. I was washed back to the beach over and over again, covered with bruises, hungry, thirsty and weak!

--- Finally, finally, finally, damn! ! ! Tried it out~~~

(3) Solution:

Add in front of curl_exec(): (Copy the cacert.pem file to the current directory, other paths are also available )

 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); 
   curl_setopt($curl, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem'); 
   curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);

5. Final effect:



Related recommendations:

php How to send text messages using SMS Bao

jQuery implements the countdown function for sending text messages

php sends SMS verification code to complete the registration function

The above is the detailed content of php implements sending text messages. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn