WeChat 미니 프로그램의 인기에 따라 점점 더 많은 개발자가 WeChat 미니 프로그램을 사용자에게 보다 편리한 경험을 제공하기 위한 개발 플랫폼으로 사용하기 시작했습니다. 그 중 SMS 인증코드는 사용자 등록, 로그인 및 기타 시나리오에서 없어서는 안 될 부분입니다. 이 기사에서는 주로 PHP를 사용하여 WeChat 미니 프로그램에 대한 SMS 인증 코드를 구현하는 방법을 소개합니다.
1. WeChat access_token 획득
WeChat API를 사용하기 전에 먼저 access_token을 획득해야 합니다. Access_token은 WeChat API에 대한 호출 자격 증명입니다. WeChat API를 호출할 때마다 access_token이 요청 헤더에 포함되어야 합니다. 구체적인 획득 방법은 다음과 같습니다.
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret; $res = json_decode(file_get_contents($url), true); $access_token = $res['access_token'];
2. 무작위 인증 코드 생성
무작위 인증 코드 생성 과정은 매우 간단합니다. PHP에 내장된 Rand 함수를 사용하면 됩니다. 구체적인 코드는 다음과 같습니다.
$code = rand(1000, 9999);
3. SMS API를 호출하여 인증 코드를 보냅니다.
access_token을 획득하고 임의의 인증 코드를 생성한 후 SMS API를 호출하여 인증 코드를 보낼 수 있습니다. 여기서는 Tencent Cloud SMS를 예로 들어보겠습니다. 다른 SMS 서비스 제공업체도 비슷합니다.
// 生成签名 $timestamp = time(); $sig = md5("appkey=".$appkey."×tamp=".$timestamp); // 生成短信内容 $content = "【签名】验证码为:".$code.",有效期5分钟,请勿泄露。如非本人操作,请忽略本短信。"; // 发送短信 $url = "https://yun.tim.qq.com/v5/tlssmssvr/sendsms?sdkappid=".$sdkappid."&random=".rand(); $data = array( "tel" => array("nationcode" => "86", "mobile" => $mobile), "type" => 0, "msg" => $content ); $data = json_encode($data); $header = array( "Content-type: application/json", "Authorization: ".$sig, "Timestamp: ".$timestamp ); $options = array( "http" => array( "method" => "POST", "header" => implode(" ", $header), "content" => $data ) ); $res = json_decode(file_get_contents($url, false, stream_context_create($options)), true);
4. 인증코드를 Redis에 저장
인증코드의 유효기간을 보장하기 위해서는 생성된 랜덤 인증코드를 Redis에 저장하고 유효기간을 설정해야 합니다. 구체적인 코드는 다음과 같습니다.
$redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->setex($mobile, 300, $code);
5. 전체 코드
function send_sms($mobile, $appid, $appsecret, $sdkappid, $appkey, $templateid) { // 获取access_token $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret; $res = json_decode(file_get_contents($url), true); $access_token = $res['access_token']; // 生成随机验证码 $code = rand(1000, 9999); // 发送短信 $timestamp = time(); $sig = md5("appkey=".$appkey."×tamp=".$timestamp); $content = "【签名】验证码为:".$code.",有效期5分钟,请勿泄露。如非本人操作,请忽略本短信。"; $url = "https://yun.tim.qq.com/v5/tlssmssvr/sendsms?sdkappid=".$sdkappid."&random=".rand(); $data = array( "tel" => array("nationcode" => "86", "mobile" => $mobile), "type" => 0, "msg" => $content ); $data = json_encode($data); $header = array( "Content-type: application/json", "Authorization: ".$sig, "Timestamp: ".$timestamp ); $options = array( "http" => array( "method" => "POST", "header" => implode(" ", $header), "content" => $data ) ); $res = json_decode(file_get_contents($url, false, stream_context_create($options)), true); // 保存验证码到Redis $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->setex($mobile, 300, $code); return array("code" => $code); }
6. 요약
이 글에서는 PHP를 사용하여 access_token 획득, 무작위 인증 코드 생성, 호출 등 WeChat 미니 프로그램용 SMS 인증 코드를 구현하는 방법을 소개합니다. 인증 코드를 보내고 Redis에 저장하는 SMS API입니다. 이 팁은 WeChat 미니 프로그램에만 적용되는 것이 아니라 다른 유형의 애플리케이션에도 사용할 수 있습니다. 이 기사가 모든 사람에게 도움이 되기를 바랍니다.
위 내용은 PHP를 사용하여 WeChat 애플릿 SMS 확인 코드를 구현하기 위한 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!