>  기사  >  백엔드 개발  >  PHP에서 WeChat JS-SDK 서명을 구현하는 방법

PHP에서 WeChat JS-SDK 서명을 구현하는 방법

WBOY
WBOY원래의
2023-05-13 12:40:361454검색

WeChat의 인기와 발전에 따라 WeChat 공식 계정은 많은 기업과 개인이 마케팅 및 홍보를 수행하는 데 선호하는 플랫폼이 되었습니다. WeChat JS-SDK는 WeChat 공개 계정 개발의 필수적인 부분입니다. 이는 Moments 공유, WeChat 결제 호출 등과 같은 좀 더 대화적이고 흥미로운 기능을 구현하는 데 도움이 될 수 있습니다. 이 기사에서는 개발 시 모든 사람이 이 기능을 쉽게 사용할 수 있도록 PHP에서 WeChat JS-SDK 서명을 구현하는 방법을 소개합니다.

1. WeChat JS-SDK 소개

WeChat JS-SDK는 WeChat 공식 계정에서 제공하는 개발 도구로, 공식 계정에서 WeChat의 다양한 기능을 사용할 수 있습니다. WeChat JS-SDK를 통해 웹 페이지에서 WeChat의 API 인터페이스를 호출하여 WeChat의 공유, 결제, QR 코드 스캔, 다운로드 및 기타 기능을 실현하여 사용자에게 더 나은 사용자 경험을 제공할 수 있습니다.

2. WeChat JS-SDK 서명 원칙

WeChat JS-SDK를 사용하기 전에 WeChat에서 제공하는 인터페이스를 호출하여 서명해야 합니다. WeChat JS-SDK 서명의 원리는 미리 획득한 access_token과 jsapi_ticket을 기반으로 현재 요청된 URL을 암호화하고 서명을 생성하는 것입니다. JS 파일을 프론트엔드 페이지에 도입한 후 wx.config를 통해 검증합니다. JS 파일은 자동으로 백엔드에 서명 검증을 요청합니다. 검증에 성공하면 다음 단계로 진행할 수 있습니다.

3. WeChat JS-SDK 서명 단계

  1. access_token 및 jsapi_ticket 가져오기

WeChat JS-SDK를 사용하여 서명하기 전에 access_token 및 jsapi_ticket 두 매개변수를 가져와야 합니다. 그 중 access_token은 WeChat 퍼블릭 플랫폼에서 각 인터페이스를 호출할 때 사용하는 유일한 자격 증명이고, jsapi_ticket은 js-sdk에서 WeChat JS 인터페이스를 호출하는 데 사용되는 임시 티켓입니다. 다음과 같은 방법으로 얻을 수 있습니다:

(1) 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));
$access_token = $res->access_token;

(2) jsapi_ticket

$url = "https://api.weixin. qq.com /cgi-bin/ticket/getticket?type=jsapi&access_token=".$access_token;
$res = json_decode(file_get_contents($url));
$ticket = $res->ticket;

  1. noncestr 생성 and timestamp

noncestr과 timestamp는 모두 무작위로 생성된 문자열이자 타임스탬프입니다. 다음 코드를 사용하여 얻을 수 있습니다:

$nonceStr = createNonceStr();
$timeStamp = time();

//임의의 문자열 생성
function createNonceStr($length = 16){

$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$str = "";
for ($i = 0; $i < $length; $i++) {
    $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
}
return $str;

}

  1. 매개변수 쌍 문자열 정렬 및 연결

모든 매개변수를 ASCII 코드에 따라 작은 것부터 큰 것까지 정렬하고 문자열로 연결합니다. 다음 예에 표시된 대로 서명 알고리즘의 요구 사항에 따라 접합하세요.

string1 = "jsapi_ticket . "&noncestr=" . =" . $ url;

  1. 연결된 문자열을 SHA1로 암호화

연결된 문자열을 SHA1로 암호화하여 서명을 생성하세요. 그런 다음 이러한 매개변수는 프런트엔드로 함께 반환됩니다. 다음 예와 같이

$signature = sha1($string1);

$data = array(

"appId" => $appid,
"nonceStr" => $nonceStr,
"timestamp" => $timeStamp,
"url" => $url,
"signature" => $signature,
"jsApiList" => array(
    "onMenuShareTimeline",
    "onMenuShareAppMessage",
    "onMenuShareQQ",
    "onMenuShareWeibo",
    "hideMenuItems",
    "showMenuItems",
    "chooseWXPay"
)

);

$signPackage = json_encode($data);

  1. JS 파일을

WeChat에서 제공하는 JS 파일을 프런트엔드 페이지에 삽입하고 wx.config를 호출하여 확인하면 WeChat JS-SDK에서 제공하는 기능을 사용할 수 있습니다.

4. 결론

이 글에서는 WeChat JS-SDK 서명을 PHP로 구현하는 방법을 소개합니다. WeChat JS-SDK를 사용할 때 실제 필요에 따라 관련 구성 및 호출도 수행해야 합니다. 이 기사가 마케팅 프로모션을 위해 WeChat 공개 계정을 더 잘 사용하는 데 도움이 되기를 바랍니다.

위 내용은 PHP에서 WeChat JS-SDK 서명을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.