Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk melaksanakan tandatangan WeChat JS-SDK dalam PHP

Bagaimana untuk melaksanakan tandatangan WeChat JS-SDK dalam PHP

WBOY
WBOYasal
2023-05-13 12:40:361517semak imbas

Dengan populariti dan perkembangan WeChat, akaun rasmi WeChat telah menjadi platform pilihan bagi banyak syarikat dan individu untuk menjalankan pemasaran dan publisiti. WeChat JS-SDK ialah bahagian penting dalam pembangunan akaun awam WeChat. Ia boleh membantu kami melaksanakan beberapa fungsi yang lebih interaktif dan menarik, seperti berkongsi ke Moments, memanggil pembayaran WeChat, dsb. Artikel ini akan memperkenalkan cara untuk melaksanakan tandatangan WeChat JS-SDK dalam PHP untuk memudahkan semua orang menggunakan fungsi ini dalam pembangunan.

1. Pengenalan kepada WeChat JS-SDK

WeChat JS-SDK ialah alat pembangunan yang disediakan oleh akaun rasmi WeChat, yang membolehkan kami menggunakan pelbagai fungsi WeChat dalam akaun rasmi. Melalui WeChat JS-SDK, kami boleh memanggil antara muka API WeChat dalam halaman web untuk merealisasikan perkongsian, pembayaran, pengimbasan kod QR, muat turun dan fungsi lain WeChat, membawa pengalaman pengguna yang lebih baik kepada pengguna.

2. Prinsip tandatangan WeChat JS-SDK

Sebelum menggunakan WeChat JS-SDK, kami perlu menghubungi antara muka yang disediakan oleh WeChat untuk menandatangani. Prinsip tandatangan WeChat JS-SDK ialah: berdasarkan akses_token dan jsapi_ticket yang telah diperoleh sebelumnya, URL yang diminta pada masa ini disulitkan dan tandatangan dijana. Selepas memperkenalkan fail JS ke halaman hujung hadapan, sahkannya melalui wx.config Fail JS secara automatik akan meminta bahagian belakang untuk pengesahan tandatangan Jika pengesahan berjaya, anda boleh meneruskan ke langkah seterusnya.

3. Langkah menandatangani WeChat JS-SDK

  1. Dapatkan access_token dan jsapi_ticket

Sebelum menggunakan WeChat JS-SDK untuk menandatangani, kita perlu mendapatkan access_token dan jsapi_ticket jsapi_ticket kedua-dua parameter ini. Antaranya, access_token ialah satu-satunya kelayakan yang digunakan oleh platform awam WeChat apabila memanggil setiap antara muka, dan jsapi_ticket ialah tiket sementara yang digunakan dalam js-sdk untuk memanggil antara muka WeChat JS. Ia boleh diperolehi dengan cara berikut:

(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. Jana noncestr dan timestamp

noncestr dan timestamp adalah rentetan dan masa yang dijana secara rawak setem. Boleh diperolehi menggunakan kod berikut:

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

//Jana rentetan rawak
fungsi createNonceStr($ panjang = 16) {

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

}

  1. Isih parameter dan sambung rentetan

Isih semua parameter mengikut kod ASCII daripada kecil ke besar dan kemudian sambungkan menjadi tali. Perhatikan penyambungan mengikut keperluan dalam algoritma tandatangan, seperti yang ditunjukkan dalam contoh berikut:

string1 = "jsapi_ticket=" "&noncestr=" "×tamp=" timeStamp . "&url =" . $url;

  1. Sulitkan rentetan dengan SHA1

Sulitkan rentetan yang disambung dengan SHA1 untuk menjana tandatangan. Parameter ini kemudiannya dikembalikan ke hujung hadapan bersama-sama. Seperti yang ditunjukkan dalam contoh berikut:

$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. Perkenalkan fail JS pada halaman hadapan dan sahkannya

Perkenalkan fail JS yang disediakan oleh WeChat pada bahagian hadapan halaman dan hubungi wx.config untuk pengesahan Selepas pengesahan berjaya, anda boleh menggunakan fungsi yang disediakan oleh WeChat JS-SDK.

4. Kesimpulan

Artikel ini memperkenalkan cara melaksanakan tandatangan WeChat JS-SDK dalam PHP. Apabila menggunakan WeChat JS-SDK, anda juga perlu membuat konfigurasi dan panggilan yang berkaitan berdasarkan keperluan sebenar. Saya harap artikel ini dapat membantu anda menggunakan akaun awam WeChat dengan lebih baik untuk promosi pemasaran.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan tandatangan WeChat JS-SDK dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn