Dokumentasi WeChat JS-SDK


WeChat JS-SDK dokumentasi

1474938226449452.jpg

WeChat JS-SDK disediakan oleh platform awam WeChat untuk pembangun web berdasarkan WeChat Kit alat pembangunan web dalam.

Dengan menggunakan WeChat JS-SDK, pembangun web boleh menggunakan WeChat untuk menggunakan keupayaan sistem telefon mudah alih dengan cekap seperti mengambil gambar, memilih gambar, suara dan lokasi Pada masa yang sama, mereka boleh terus menggunakan WeChat untuk berkongsi , imbasan, kupon, bayar, dll. Keupayaan unik WeChat memberikan pengguna WeChat pengalaman web yang lebih baik. 🎜🎜

Dokumen ini memperkenalkan cara menggunakan WeChat JS-SDK dan langkah berjaga-jaga yang berkaitan untuk pembangun web. Langkah-langkah untuk menggunakan "Tetapan Fungsi" JSSDK Isikan "nama domain keselamatan antara muka JS".

Nota: Selepas log masuk, anda boleh melihat kebenaran antara muka yang sepadan dalam "Pusat Pembangun".

Langkah 2: Import fail JS

Perkenalkan fail JS berikut ke halaman yang perlu memanggil antara muka JS (menyokong https): http://res.wx.qq.com/open/js/jweixin-1.0.0.js

Jika anda perlu menggunakan Untuk fungsi periferal goncang, sila perkenalkan http://res.wx.qq.com/open/js/jweixin-1.1.0.js

Nota: Menyokong penggunaan AMD /Kaedah pemuatan modul standard CMD Memuatkan

Langkah 3: Suntikan konfigurasi pengesahan kebenaran melalui antara muka konfigurasi

Semua halaman yang perlu menggunakan konfigurasi JS-SDK terlebih dahulu. tidak boleh dipanggil (URL yang sama hanya perlu dipanggil Sekali, apl web SPA yang menukar URL boleh dipanggil setiap kali URL berubah. Pada masa ini, klien Android WeChat tidak menyokong ciri H5 baharu pushState, jadi menggunakan pushState untuk melaksanakan halaman apl web akan menyebabkan tandatangan gagal.

. anda boleh membukanya di bahagian PC. Maklumat parameter akan dicetak melalui log, dan hanya akan dicetak pada bahagian PC

appId: '', // Diperlukan, pengecam unik akaun rasmi

.

cap masa: , // Diperlukan, digunakan untuk menjana tandatangan

nonceStr: '', // Diperlukan, jana rentetan tandatangan rawak

tandatangan: '', // Diperlukan, tandatangan. , lihat Lampiran 1

jsApiList: [] // Diperlukan, senarai antara muka JS yang perlu digunakan, lihat Lampiran 2 untuk senarai semua antara muka JS

});

. , dan semua panggilan antara muka mesti Selepas antara muka konfigurasi memperoleh keputusan, konfigurasi ialah operasi tak segerak pada bahagian klien, jadi jika antara muka yang berkaitan perlu dipanggil apabila halaman dimuatkan, antara muka yang berkaitan mesti dipanggil dalam fungsi sedia untuk pastikan pelaksanaan yang betul apabila dicetuskan oleh pengguna, ia boleh dipanggil terus dan tidak perlu diletakkan dalam fungsi sedia

});.. dilaksanakan, seperti apabila tandatangan tamat tempoh Pengesahan gagal Maklumat ralat khusus boleh dilihat dalam mod nyahpepijat konfigurasi atau dalam parameter res yang dikembalikan Untuk SPA, tandatangan boleh dikemas kini di sini

});. .

Arahan panggilan antara muka

Semua antara muka dipanggil melalui objek wx (objek jWeixin juga boleh digunakan parameter adalah objek. Selain daripada parameter yang perlu dilalui). itu sendiri, terdapat parameter Umum berikut:

1.success: fungsi panggil balik dilaksanakan apabila panggilan antara muka berjaya.

2.fail: Fungsi panggil balik dilaksanakan apabila panggilan antara muka gagal.

3.complete: Fungsi panggil balik yang dilaksanakan apabila panggilan antara muka selesai, akan dilaksanakan tanpa mengira kejayaan atau kegagalan.

4.batal: Fungsi panggil balik apabila pengguna mengklik batal Ia hanya digunakan oleh beberapa API apabila pengguna membatalkan operasi.

5.trigger: Kaedah yang dicetuskan apabila butang dalam Menu diklik Kaedah ini hanya menyokong antara muka yang berkaitan dalam Menu.

Nota: Jangan cuba gunakan permintaan asynchronous ajax dalam pencetus untuk mengubah suai kandungan bahagian ini, kerana operasi perkongsian pelanggan adalah operasi segerak, dan paket pulangan menggunakan ajax tidak akan dikembalikan pada masa ini.

Fungsi di atas semuanya mempunyai satu parameter, iaitu jenis objek Selain data yang dikembalikan oleh setiap antara muka itu sendiri, terdapat juga atribut umum errMsg, yang format nilainya adalah seperti berikut:

Apabila. panggilan berjaya : "xxx:ok", dengan xxx ialah nama antara muka yang dipanggil

Apabila pengguna membatalkan: "xxx:cancel", di mana xxx ialah nama antara muka yang dipanggil

Apabila panggilan gagal: nilainya ialah mesej ralat khusus

Antara muka asas

Tentukan sama ada versi klien semasa menyokong antara muka JS yang ditentukan

jsApiList: ['pilihImej ' ], // Senarai antara muka JS yang perlu dikesan, lihat Lampiran 2 untuk senarai semua antara muka JS,

success: function(res) {

// Kembalikan dalam bentuk kunci- pasangan nilai, nilai api yang tersedia adalah benar, Jangan gunakan False f // Contohnya: {"CheckResult": {"choooseimage": true}, "ErRMSG": "Checkjsapi: OK"}}});

Nota: Antara muka checkJsApi ialah antara muka tersimpan yang baru diperkenalkan dalam klien 6.0.2 Antara muka yang dibuka pada fasa pertama boleh dikesan tanpa menggunakan checkJsApi.

Perkongsian antara muka

Sila berhati-hati untuk tidak mendorong perkongsian dan aktiviti haram yang lain Untuk tingkah laku perkongsian terdorong, kebenaran antara muka akaun rasmi akan dibatalkan secara kekal. Soalan Lazim Pengurusan Moments.

Dapatkan status klik butang "Kongsi ke Momen" dan sesuaikan antara muka kandungan perkongsian pautan: '', // Kongsi pautan

imgUrl: '', // Kongsi ikon

kejayaan: fungsi () {

// Fungsi panggil balik dilaksanakan selepas pengguna mengesahkan perkongsian

},

},

},

},

{取 // Pengguna membatalkan fungsi panggil balik yang boleh dilaksanakan selepas berkongsi

}});

.

desc: '', // Kongsi penerangan pautan: '', // Kongsi pautan

imgUrl: '', // Kongsi ikon


taip: '', // Kongsi taip, muzik, video atau pautan, jika dibiarkan kosong, lalainya ialah pautan

dataUrl: '', // Jika jenis ialah muzik atau video, pautan data mesti disediakan, lalainya kosong

berjaya : fungsi () {

- - akan dilaksanakan selepas pengguna mengesahkan perkongsian,

‐ ‐ () {

Fungsi panggil balik dilaksanakan selepas pengguna membatalkan perkongsian

Dapatkan status klik butang "Kongsi ke QQ" dan sesuaikan antara muka kandungan perkongsian

wx.onMenuShareQQ({

, //

) tajuk desc: '', // Kongsi penerangan

pautan: '', // Kongsi pautan

imgUrl: '', // Kongsi ikon

kejayaan: fungsi () {

享 // Pengguna mengesahkan fungsi panggil balik yang dilaksanakan selepas perkongsian

},

Batal: Fungsi () {

// Pengguna membatalkan fungsi panggil balik yang dikongsi // Pengguna membatalkan fungsi panggil balik yang dikongsi

}}

});

获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口

wx.onMenuShareWeibo({

    title: '', // 分享标题

    desc: '', // 分享描述

    link: '', // 分享链接

    imgUrl: '', // 分享图标

    success: function () { 

       // 用户确认分享后执行的回调函数

    },

    cancel: function () { 

Fungsi panggil balik dilaksanakan selepas pengguna membatalkan perkongsian

获取“分享到QQ空间”按钮点击状态及自定义分享内容接口

wx.onMenuShareQZone({

    title: '', // 分享标题

    desc: '', // 分享描述

    link: '', // 分享链接

    imgUrl: '', // 分享图标

    success: function () { 

       // 用户确认分享后执行的回调函数

    },

    cancel: function () { 

Fungsi panggil balik dilaksanakan selepas pengguna membatalkan perkongsian

Antara muka imej

Antara muka untuk mengambil foto atau memilih gambar daripada album mudah alih

Kiraan: 1, / / Lalai 9

sizeType: ['original', 'compressed'], // Anda boleh menentukan sama ada ia adalah imej asal atau imej mampat, kedua-duanya tersedia secara lalai

sourceType: ['album' , 'kamera'], // Anda boleh menentukan sama ada sumbernya ialah album foto atau kamera Secara lalai, kedua-duanya tersedia: fungsi (res) {

Atribut src teg memaparkan imej

.

}

});

Pratonton antara muka imej

wx.previewImage({

semasa: '', // pautan http untuk memaparkan imej

pada masa ini] //nedkan imej

pratonton Senarai pautan http gambar

});

.

isShowProgressTips: 1, // Lalai ialah 1, paparan progres Kejayaan: fungsi (res) { var serverId = res.serverId

;

});

Nota: Imej yang dimuat naik adalah sah selama 3 hari Anda boleh menggunakan antara muka multimedia WeChat untuk memuat turun imej ke pelayan anda sendiri. . antara muka muat naikImej

isShowProgressTips: 1, // Lalai ialah 1, menunjukkan petua kemajuan kejayaan: fungsi (res) {

var localId = res.local///Returning the localId; imej

}

});

Antara muka audio

Mulakan antara muka rakaman

;🎜.

} });

Antaramuka untuk menghentikan pemantauan rakaman secara automatik

wx.onVoiceRecordEnd({

) // Masa hentian penuh akan dihentikan apabila satu minit rakaman dihentikan

lengkap : function ( res) {

var localId = res.localId;

}

});

Main antara muka suara

wx.playVoice({

) localId: '' // ID setempat bagi audio yang akan dimainkan🜎 }) ;

Jeda antara muka main balik

wx.pauseVoice({
)

audio setempat yang perlu dijeda({ ): audio setempat sed diperolehi oleh antara muka stopRecord

});

.

});

Antara muka untuk memantau penyiapan main balik suara

wx.onVoicePlayEnd({

)

fungsi setempat: d = res.localId; / Kembalikan audio ID Tempatan

}

});

.

isShowProgressTips: 1, // Lalai ialah 1, paparan progres           success: function (res) {

      var serverId ;

}

});

Nota: Suara yang dimuat naik adalah sah selama 3 hari Anda boleh menggunakan antara muka multimedia WeChat untuk memuat turun suara ke pelayan anda sendiri antara muka muat turun adalah 10,000 kali/hari Jika perlu, tingkatkan kekerapan, sila log masuk ke platform awam WeChat dan memohon untuk meningkatkan had atas sementara dalam senarai kebenaran antara muka pembangunan. Muat turun antara muka suara antara muka muat naikVoice

isShowProgressTips: 1, // Lalai ialah 1, menunjukkan petua kemajuan kejayaan: fungsi (res) {

var localId = res. //localId = res audio

}

});

Antara muka pintar

Antara muka untuk mengecam audio dan mengembalikan hasil pengecaman lewat localId: '', // perlu untuk dikenal pasti ID tempatan audio, diperoleh daripada antara muka berkaitan rakaman

isShowProgressTips: 1, // Lalai ialah 1, paparkan gesaan kemajuan

kejayaan: fungsi (res) {

alert(res.translateResult); // Hasil pengecaman pertuturan

}

});

Maklumat peranti

Dapatkan antara muka status rangkaian


kejayaan: fungsi (res) {

var networkType = res.networkType; // Kembalikan jenis rangkaian 2g, 3g, 4g, wifi

}
🎜🎜🎜});🎜🎜🎜

Lokasi geografi

Gunakan antara muka paparan peta terbina dalam WeChat

latitud: 0, // latitud , Mata apungan, julat ialah 90 ~ -90

longitud: 0, // Longitud, nombor titik terapung, julat ialah 180 ~ -180

nama: '', // Nama lokasi

. alamat: ' ', // Butiran alamat

skala: 1, // Aras zum peta, nilai membentuk, antara 1 hingga 28. Lalai ialah maksimum

infoUrl: '' // Dipaparkan di bahagian bawah antara muka lokasi paparan Hiperpautan, klik untuk melompat

});
🎜🎜

Met geografi Interface

wx.getLocation ({

) Jenis: 'WGS84', // lalai adalah koordinat WGS84 GPS. OpenLocation Coordinates, boleh dihantar dalam 'gcj02'

Kejayaan: fungsi (res) {

var latitud = res.latitude; // Latitud, nombor titik terapung, julat ialah 90 ~ -90

var longitud = res.longitud; // Longitud, nombor titik terapung, julat ialah 180 ~ -180 var speed = res.speed; Ketepatan kedudukan

}

});

Goncang kawasan sekeliling

Buka antara muka untuk mencari peranti ibeacon di sekeliling

{

tiket:" ", // Goncangkan tiket perniagaan di sekelilingnya, sistem menambahkannya secara automatik selepas pautan halaman yang digoncang

complete:function(argv){

//Dayakan fungsi panggil balik selepas carian selesai

}

});
🎜🎜

Nota: Jika anda perlu mengakses fungsi periferal goncang, sila rujuk kepada: Mohon untuk mengaktifkan persisian goncang

Tutup carian peranti ibeacon persisian. acons ({

lengkap:fungsi(res){

//Tutup fungsi panggil balik selepas carian selesai

}

Dengar antara muka peranti ibeacon persisian

wx.onSearchBeacons({

)fungsi

//Fungsi panggilan balik, boleh berada dalam bentuk tatasusunan Dapatkan senarai peranti persisian berkaitan yang didaftarkan oleh pedagang

}

});
🎜🎜

Catatan: Untuk langkah berjaga-jaga penggunaan antara muka persisian Shake Shake yang dinyatakan di atas dan lebih banyak arahan hasil pemulangan, sila rujuk: Peranti Shake Shake untuk mendapatkan maklumat peranti

Pengendalian antara muka

Sembunyikan antara muka menu sudut kanan atas

wx.hideOptionMenu();

Tunjukkan antara muka menu sudut kanan atas

wx.showOptionMen u() ;🎜🎜🎜

Tutup antara muka tetingkap halaman web semasa

wx.closeWindow();

antaramuka fungsi hi

wx. hideMenuItems( {

menuList: [] // Item menu yang hendak disembunyikan hanya boleh menyembunyikan butang "Propagation" dan "Protection". Lihat Lampiran 3 untuk semua item menu

🎜});🎜🎜🎜

Batch Button Function Function Interface

Wx.ShowMenuItems ({

) Menulis: [] // item menu untuk dipaparkan, lihat Lampiran 3 untuk semua item menu

} ;

Tunjukkan semua antara muka butang fungsi

wx.showAllNonBaseMenuItem();

Imbas dengan WeChat

Sediakan antara muka imbasan WeChat

perlukanHasil: 0, // Lalai Jika ia ialah 0, hasil imbasan akan diproses oleh WeChat, jika 1, hasil imbasan akan dikembalikan terus,

scanType: ["qrCode","barCode"], // Anda boleh menentukan sama ada untuk mengimbas kod QR atau kod 1D, dan kedua-duanya tersedia secara lalai

Success: function (res) {

var result = res.resultStr; // Apabila needResult ialah 1, hasilnya dikembalikan dengan mengimbas kod

}

});

WeChat store

Lompat ke halaman produk WeChat

productId: '', // id produk

viewType: '' // 0. Nilai lalai, halaman butiran produk biasa 1. Imbas halaman butiran produk 2. Simpan halaman butiran produk

});
🎜🎜

Kad dan Tiket WeChat

Sijil tandatangan api_ticket yang digunakan dalam antara muka Kad dan Tiket WeChat berbeza daripada sijil tandatangan jsapi_ticket yang digunakan dalam proses memanggil Kad dan Tiket WeChat JS-SDK Dua tandatangan berbeza perlu dilengkapkan mengikut urutan dan bukti kelayakan mesti dicache. .

Nota kepada pembangun:

1.api_ticket yang digunakan untuk tandatangan antara muka kad dan kupon adalah berbeza daripada jsapi_ticket yang digunakan untuk menyuntik konfigurasi pengesahan kebenaran melalui antara muka konfigurasi dalam langkah 3.

2 Memandangkan bilangan panggilan api untuk mendapatkan api_ticket adalah sangat terhad, penyegaran api_ticket yang kerap akan menyebabkan panggilan api terhad dan menjejaskan perniagaan mereka sendiri. . wx_card

Parameter Keterangan

access_token
Parameter
Adakah ianya perlu
ialah Bukti kelayakan panggilan antara muka .

"errmsg":"ok", "tiket":"bxLdikRXVbTPdHSM05e5u5sUoXNKdvsdshFKA",

"expires_in":7200}

Nama parameterPenerangan
kod Eror
errmsg mesej ralat
tiketapi_ticket, sijil yang diperlukan untuk mendaftar masuk kad dan antara muka kupon
expires_in masa sah

Tarik senarai kad dan kupon yang berkenaan dan dapatkan maklumat pemilihan pengguna

wx.chooseCard({

Store Id

: //Id kedai

Jenis kad : '' , // Jenis kad dan kupon

kadId: '', // Id kad dan kupon

cap masa: 0, // Cap masa tandatangan kad dan kupon

nonceStr: '', / nonceStr: '', / Kad dan tandatangan kupon adalah rawak Rentetan

tandaJenis: '', //Kaedah tandatangan, lalai ialah 'SHA1'

kadSign: '', //Tandatangan kad dan kupon

fungsi (

kejayaan: res) {

var cardList = res.cardList; // Maklumat senarai kad dipilih oleh pengguna

}

});

nama parameter Kad ID, digunakan untuk menarik senarai kad ID kad yang ditentukan Bila kadId Bila kosong, senarai semua kad dan kupon akan dikeluarkan secara lalai, yang tidak diperlukan. cardSign ialah string(64)abcsdijcous123
Nilai teladan. ID Kedai. shopID digunakan untuk menapis keluar dan mengeluarkan senarai kupon dengan location_list (shopID) yang ditentukan, yang tidak diperlukan.
cardTypeNostring(24)GROUPONTiada🎜🎜🎜string(24)🎜🎜🎜🎜GROUPON🎜ard🎜 yang telah digunakan untuk jenis kad🎜 untuk tarik keluar Apabila cardType kosong, senarai semua kad dan kupon akan dikeluarkan secara lalai, yang tidak diperlukan..
timestamp ialah rentetan(32)1430000000
nonceStr ialah rentetan (32)sduhi123🎜.
Ditandatangani.

Perhatian khusus untuk pembangun: Ralat tandatangan akan menyebabkan senarai kad tarik menjadi kosong secara luar biasa. Sila semak dengan teliti kesahihan parameter yang terlibat dalam tandatangan. . . Pembangun diminta untuk menyiasat sebab kedudukan mengikut urutan.

Interface untuk menambah kad dalam batches

wx.addcard ({

) Cardlist: [{] cardi d: '',

kadExt: '' ...

});

Perlu diperhatikan bahawa parameter card_ext di sini mesti konsisten dengan parameter yang mengambil bahagian dalam tandatangan dan formatnya ialah rentetan dan bukannya Objek, jika tidak ralat tandatangan akan dilaporkan.

Adalah disyorkan bahawa pembangun menambah tidak lebih daripada 5 kad pada satu masa, jika tidak, mereka akan menghadapi ralat tamat masa.

Lihat antara muka kad dan kupon dalam pakej kad WeChat

wx.openCard({

:

) kad ID Kad: '',

kod: ''

}]// Senarai kad dan kupon yang perlu dibuka

});

WeChat Pay

Memulakan permintaan pembayaran WeChat

cap masa: 0, // Cap masa tandatangan pembayaran, Nota bahawa semua medan cap masa yang digunakan dalam WeChat jssdk adalah huruf kecil, bagaimanapun, nama medan timeStamp yang digunakan oleh versi terkini latar belakang pembayaran untuk menjana tandatangan mesti menggunakan huruf besar huruf S

nonceStr: '', // Rentetan rawak tandatangan pembayaran, tidak lebih daripada pakej

32-bit: '', // Nilai parameter prabayar_id dikembalikan oleh antara muka pembayaran bersatu, format penyerahan ialah: prepay_id=***)

jenis tanda: '', // Kaedah tandatangan, lalai ialah 'SHA1 ', anda perlu memasukkan 'MD5' untuk menggunakan versi pembayaran baharu

paySign: '', // Tandatangan pembayaran

🎜 kejayaan: fungsi (res) {🎜🎜的 // Fungsi panggil balik selepas pembayaran berjaya

}});

Catatan: prepay_id diperolehi melalui antara muka pesanan bersatu WeChat Pay menggunakan kaedah penjanaan tandatangan WeChat Pay Sign bahawa appId di sini juga perlu mengambil bahagian dalam tandatangan , yang merupakan parameter terakhir yang terlibat dalam tandatangan Terdapat appId, timeStamp, nonceStr, pakej, signType.

Dokumentasi pembangunan pembayaran WeChat: https://pay.weixin.qq.com/wiki/doc/api/index.html

Lampiran 1-JS-SDK tandatangan kebenaran . Dalam keadaan biasa, tempoh sah jsapi_ticket ialah 7200 saat, yang diperoleh melalui access_token. Memandangkan bilangan panggilan api untuk mendapatkan jsapi_ticket adalah sangat terhad, penyegaran semula jsapi_ticket yang kerap akan menyebabkan panggilan api terhad dan menjejaskan perniagaan anda sendiri

Pembangun mesti menyimpan jsapi_ticket secara global dalam perkhidmatan mereka sendiri.

1. Rujuk dokumen berikut untuk mendapatkan access_token (sah adalah 7200 saat, pembangun mesti cache access_token secara global dalam perkhidmatan mereka sendiri): ../15/54ce45d8d30b6bf6758f68d2e95bc.html menggunakan diperolehi dalam langkah pertama Gunakan http GET untuk meminta jsapi_ticket (

tempoh sah 7200 saat, pembangun mesti cache jsapi_ticket secara global dalam perkhidmatan mereka sendiri

): https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token= ACCESS_TOKEN&type= jsapi berjaya mengembalikan JSON berikut:

{

"errcode":0,

"

"

"

"

"

"

"tiket":" bxL dikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA ",

"tamat tempoh 2

":2
🎜🎜🎜🎜 🎜🎜🎜

Selepas mendapatkan jsapi_ticket, anda boleh menjana tandatangan untuk pengesahan kebenaran JS-SDK. . , Tiada Mengandungi # dan bahagian berikut

). Selepas mengisih semua parameter yang akan ditandatangani mengikut kod ASCII nama medan daripada kecil kepada besar (urutan leksikografi), gunakan format pasangan nilai kunci URL (iaitu key1=value1&key2=value2...) untuk menyambungkannya menjadi rentetan rentetan1. Perlu diingatkan di sini bahawa semua nama parameter adalah aksara kecil. Lakukan penyulitan sha1 pada string1, gunakan nilai asal untuk nama medan dan nilai medan, dan jangan lakukan pelarian URL.

ialah tandatangan=sha1(string1). contohnya dfl2fzFy1AOcHKP7qg

timestamp=1414587457

url=http://mp.weixin.qq.com?params=value

Langkah 1. Isih semua parameter yang akan ditandatangani mengikut kod ASCII nama medan daripada kecil ke besar (urutan leksikografik ), dan gunakan URL Format pasangan kunci-nilai (iaitu key1=value1&key2=value2...) disambungkan ke dalam rentetan rentetan1: SlYy3-Sl-HhTdfl2fzFy1AO cHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp= . ed

Nota

1. Noncestr dan cap waktu yang digunakan untuk tandatangan mestilah sama dengan nonceStr dan timestamp dalam wx.config.

2. URL yang digunakan untuk tandatangan mestilah URL lengkap halaman yang memanggil antara muka JS.

3.Atas sebab keselamatan, pembangun mesti melaksanakan logik tandatangan di bahagian pelayan.

Jika ralat seperti tandatangan tidak sah berlaku, sila rujuk Lampiran 5 untuk ralat dan penyelesaian biasa.

Lampiran 2 - Senarai semua antara muka JS

Versi 1.0.0 antara muka

🎜

onMenuShareTimeline

onMenuShareAppMessage

onMenuShareQQ

onMenuShareWeibo

startRecord

stopRecord

onVoiceRecordEnd

playVoice

pausevoice

stopvoice

onvoiceplayendendroice

downloice

chooseimage

previewimage

uploadimage

downloadimage

translateVoice

getNetworkType

openLocation

getLocation

hideOption

hideOption

hideOption

hideMenuItems

showMenuItems

hideAllNonBaseMenuItem

🎜

showAllNonBaseMenuItem

closeWindow

scanQRCode

chooseWXPay

CificProView

ProductView addCard

chooseCard

openCard

🎜" menuItem:setFont"

Mod hari: "menuItem:dayMode"Mod malam: "menuItem:nightMode"

Refresh: "menuItem:refresh"

Lihat akaun rasmi (ditambah): "menuItem:profile"

Lihat akaun rasmi (tidak ditambah): "menuItem:addContact"

Kategori komunikasi kepada kawan

: "menuItem:share:appMessage"

Share to Moments: "menuItem:share:timeline"

Share to QQ: "menuItem:share:qq"

Share to Weitembo:"Share to Weitembo:" :weiboApp"

Kumpul: "Item menu:kegemaran"

Kongsi ke FB: "Item menu:kongsi:facebook"

Kongsi ke ruang/Item menu QQ:kongsi:QZone

.

Mod membaca: "menuItem:readMode"

Buka dalam pelayar QQ: "menuItem:openWithQQBrowser"

Buka dalam Safari: "menuItem:openWith

Safaritem" kongsi :email" . pengguna sila Baca di sini, Pengguna JSAPI boleh melangkau

Tandatangan kad dan kupon serta tandatangan JSSDK adalah bebas sepenuhnya Algoritma dan maksud kedua-duanya adalah berbeza sama sekali. Tandatangan JSSDK ialah lapisan pengesahan yang diperlukan untuk menggunakan semua antara muka JS Ia digunakan untuk mengenal pasti identiti pemanggil dan tiada kaitan dengan kupon itu sendiri. Kedua, untuk tandatangan kad dan kupon, satu set protokol tandatangan bebas telah direka dengan mengambil kira kebolehskalaan protokol dan pencegahan mudah gangguan data. Di samping itu, atas sebab sejarah, antara muka JS kad dan kupon muncul sebelum JSSDK pada masa itu tidak mempunyai sistem pengesahan, jadi maklumat identiti appsecret/api_ticket turut ditambahkan pada tandatangan kad dan. kupon. Saya harap pembangun akan faham.

Kad dan kupon api_ticket

Kad dan kupon api_ticket ialah tiket sementara yang digunakan untuk memanggil antara muka yang berkaitan dengan kad dan kupon melalui akses kepada 7200 saat. Beri perhatian di sini untuk membezakannya daripada jsapi_ticket. Memandangkan bilangan panggilan api untuk mendapatkan kad dan tiket api_ticket adalah sangat terhad, penyegaran kad dan tiket api_ticket yang kerap akan menyebabkan panggilan api terhad dan menjejaskan perniagaan mereka sendiri Pembangun mesti menyimpan kad dan tiket api_ticket secara global dalam mereka sendiri perkhidmatan . .

2. Gunakan access_token yang diperoleh pada langkah pertama untuk meminta kad dan kupon api_ticket menggunakan kaedah http GET (tempoh sah ialah 7200 saat, pembangun mesti cache kad dan kupon api_ticket secara global dalam perkhidmatan mereka sendiri): https:/ /api.weixin. qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=wx_card


Kad dan kupon sambungan kad medan Ext

🎜🎜🎜🎜🎜🎜🎜🎜 medan medan kad itu sendiri rentetan , itulah yang dilakukan oleh pedagang Maklumat unik yang diberikan kepada setiap kad dan kupon, termasuk medan berikut: 🎜🎜. ArahanE_TYPE_FIX_TERM Ia mengenal pasti masa sah sebenar kad dan kupon, dan digunakan untuk menyelesaikan masalah penyegerakan antara masa mula dan. masa pengumpulan dalam sistem pedagang. .
kod Tidak ialah kod kupon yang ditentukan oleh , yang hanya boleh dituntut sekali. Kad dan kupon dalam mod kod tersuai mesti diisi, tetapi kad dan kupon dalam mod bukan tersuai dan mod kod pra-simpan tidak perlu diisi. Untuk butiran, lihat: Sama ada untuk menyesuaikan kod
openid Tidak ialah hanya penerima yang boleh menerimanya. Kad dan kupon yang medan bind_openid adalah benar mesti diisi; medan bind_openid adalah palsu dan tidak perlu diisi.
cap masa ialah ialah cap masa, pedagang menjana bilangan saat: 00 dari 00 saat ini masa , dan akhirnya Ia perlu ditukar kepada bentuk rentetan; ia dijana oleh pedagang dan dihantar masuk. Cap masa permintaan tambah yang berbeza mesti dijana secara dinamik Jika diulang, koleksi akan gagal! .
nonce_strNo ialah rentetan rawak yang ditetapkan oleh pembangun, boleh diisi semula. Rentetan rawak, tidak lebih daripada 32 aksara. Adalah disyorkan untuk menggunakan huruf besar dan kecil dan Nonces untuk permintaan penambahan yang berbeza mesti dijana secara dinamik Jika berulang, pengumpulan akan gagal.
fixed_begintimesmp Ia hanya digunakan apabila jenis tempoh sah kad dan kupon ialah DAT
Signature adalah tandatangan -. seperti berikut; oleh peniaga Tandatangani mengikut spesifikasi dan kemudian masukkannya.

Arahan tandatangan

1. Tukar api_ticket (Nota khas: api_ticket lebih selamat daripada appsecret, dan serasi dengan appscret yang digunakan dalam versi lama dokumen sebagai bukti kelayakan, kod. Nilai nilai openid dan nonce_str melakukan pengisihan leksikografi rentetan.

2. Gabungkan semua rentetan parameter menjadi satu rentetan dan lakukan penyulitan sha1 untuk mendapatkan tandatangan.

3. Medan cap masa dan nonce dalam tandatangan mestilah konsisten dengan medan cap masa dan nonce_str dalam card_ext.

4.code = jonyqin_1434008071, timestamp = 1404896688, card_id = pjz8yt1xgilfi-fusewpnnolggzk, api_ticket = ojz8ytyvyr30heh injonyqin_1434008071ojz8ytyvyr30hhhh3cm73y7h4jje pjz8yt1xgilfi-fusewpnnolggzk)

Pembangun amat disyorkan supaya menggunakan SDK alat tandatangan dalam pakej maklumat kad dan kupon untuk menandatangani atau menggunakan alat nyahpepijat untuk pengesahan: http://mp.weixin.qq.com/debug/cgi -bin/kotak pasir ?t=cardsign


Arahan untuk cardSign

Arahan untuk cardSign

🎜🎜🎜1. versi documents) Gunakan appecret sebagai sijil tandatangan.), app_id, location_id, times_tamp, nonce_str, card_id, card_type nilai nilai untuk mengisih rentetan dalam susunan leksikografi. 🎜🎜🎜🎜2. Gabungkan semua rentetan parameter menjadi satu rentetan dan lakukan penyulitan sha1 untuk mendapatkan cardSign. 🎜🎜🎜🎜🎜🎜🎜

Lampiran 5 - Ralat dan Penyelesaian Biasa

Apabila memanggil antara muka konfigurasi, masukkan nyahpepijat parameter: benar untuk mendayakan mod nyahpepijat dan halaman akan memaklumkan mesej ralat. Berikut adalah ralat dan penyelesaian biasa:

1.domain url tidak sah Nama domain halaman semasa tidak terikat dengan aplikasi yang digunakan Sila pastikan anda mengisi nama domain terikat dengan betul 443 (https) disokong, jadi tidak perlu mengisi nombor port (satu appid boleh terikat kepada tiga nama domain yang sah).

2. ralat tandatangan tidak sah. Adalah disyorkan untuk menyemak mengikut susunan berikut:

1. Sahkan bahawa algoritma tandatangan adalah betul, dan anda boleh menggunakan http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t =jsapisign alat halaman untuk pengesahan.

2. Sahkan bahawa nonceStr (modal standard S dalam kotak unta dalam js) dan cap waktu dalam konfigurasi adalah konsisten dengan noncestr dan cap masa yang sepadan yang digunakan dalam tandatangan.

3. Sahkan bahawa url tersebut ialah url lengkap halaman (sila sahkan pada makluman halaman semasa(location.href.split('#')[0])), termasuk 'http(s):// ' bahagian, dan '? 'Bahagian parameter GET selepas ', tetapi tidak termasuk bahagian selepas '#'hash.

4. Sahkan bahawa appid dalam konfigurasi adalah konsisten dengan appid yang digunakan untuk mendapatkan jsapi_ticket.

5. Pastikan cache access_token dan jsapi_ticket.

6.Pastikan URL yang anda perolehi untuk ditandatangani diperoleh secara dinamik Untuk halaman dinamik, sila rujuk pelaksanaan PHP dalam kod contoh. Jika ia adalah halaman statik html, url dihantar ke hujung belakang untuk tandatangan melalui ajax di hujung hadapan perlu menggunakan js untuk mendapatkan pautan halaman semasa kecuali bahagian cincang '#' (boleh diperolehi oleh location.href.split('#')[0], dan encodeURIComponent diperlukan), kerana setelah halaman dikongsi, klien WeChat akan menambah parameter lain di penghujung pautan anda Jika pautan semasa tidak diperoleh secara dinamik, tandatangan halaman kongsi akan gagal.

3.nilai kebenaran adalah pengesahan luar talian Ralat ini adalah kerana konfigurasi tidak dilaksanakan dengan betul, atau JSAPI yang dipanggil tidak dihantar ke parameter jsApiList konfigurasi. Adalah disyorkan untuk menyemak dalam susunan berikut:

1. Sahkan bahawa konfigurasi diluluskan dengan betul.

2. Jika JSAPI dipanggil semasa halaman dimuatkan, ia mesti ditulis dalam panggilan balik wx.ready.

3. Sahkan bahawa parameter jsApiList konfigurasi mengandungi JSAPI ini.

4.kebenaran ditolak Akaun rasmi tidak mempunyai kebenaran untuk menggunakan JSAPI ini, atau JSAPI yang dipanggil tidak dihantar ke dalam parameter konfigurasi jsApiList (sesetengah antara muka memerlukan pengesahan sebelum ia boleh digunakan).

5 fungsi tidak wujud Versi klien semasa tidak menyokong antara muka ini, sila naik taraf kepada versi baharu untuk mengalaminya.

6 Mengapa config: ok dalam versi 6.0.1, tetapi tidak ok selepas versi 6.0.2 (kerana tiada pengesahan kebenaran sebelum versi 6.0.2, jadi konfigurasi semuanya ok, tetapi ini tidak bermakna bahawa dalam konfigurasi anda Tandatangan OK, sila semak sama ada tandatangan yang betul dijana dalam 6.0.2 untuk memastikan bahawa konfigurasi OK dalam versi yang lebih tinggi)

.

7 Perkongsian tidak boleh dilakukan pada iOS dan Android (sila sahkan bahawa akaun rasmi telah disahkan. Hanya akaun rasmi yang diperakui mempunyai kebenaran untuk berkongsi antara muka yang berkaitan. Jika ia benar-benar disahkan, semak sama ada antara muka mendengar dicetuskan dalam wx.ready callback function )

8 Selepas servis online, jsapi_ticket tidak boleh diperolehi. (Oleh kerana access_token dan jsapi_ticket mesti dicache pada pelayan anda sendiri, jika tidak, had kekerapan akan dicetuskan selepas pergi ke dalam talian. Sila pastikan untuk cache token dan tiket untuk mengurangkan 2 permintaan pelayan. Ini bukan sahaja akan mengelakkan daripada mencetuskan had kekerapan, tetapi juga mempercepatkan perkhidmatan anda sendiri Pada masa ini, 10,000 pemerolehan disediakan untuk kemudahan ujian Selepas ambang melebihi, perkhidmatan tidak akan tersedia lagi Sila pastikan akses_token dan jsapi_ticket dicache secara global. . Kedua-duanya sah selama 7200 saat, jika tidak, ia akan dicetuskan apabila mereka pergi ke dalam talian Had kekerapan, perkhidmatan tidak akan tersedia lagi ). . Tidak boleh memuat naik imej yang dipilih secara tempatan (antara muka pilihImej itu sendiri menyokong pratonton, tiada sokongan tambahan diperlukan)

11 Lompat ke pautan B melalui pautan a (contohnya, pertama kali membenarkan log masuk melalui WeChat), tandatangan tidak sah gagal (pautan untuk menjana tandatangan di latar belakang ialah pautan semasa menggunakan jssdk, iaitu pautan b selepas lompatan. , sila jangan gunakannya) Pautan yang dibenarkan untuk log masuk WeChat digunakan untuk pengiraan tandatangan URL yang ditandatangani latar belakang mestilah URL lengkap halaman semasa jssdk tolak bahagian '#')

A konfigurasi: ralat gagal berlaku (ini disebabkan oleh parameter konfigurasi yang tidak lengkap yang diluluskan) Sebab, sila pastikan anda memasukkan appId, cap waktu, nonceStr, tandatangan dan jsApiList yang betul untuk digunakan)

13 dimuat naik oleh jsapi ke WeChat ke pelayan anda sendiri (sila rujuk antara muka muat naikVoice dan muat naikImej dalam Nota dokumen)

14 Android dimuat naik ke pelayan WeChat melalui jssdk, dan pihak ketiga memuat turunnya dari WeChat ke miliknya sendiri. pelayan. Kebisingan akan berlaku (pasukan WeChat telah menyelesaikan masalah ini, dan bahagian belakang telah dioptimumkan dan dalam talian sekarang)

15. Ikat nama domain induk dan semak sama ada nama subdomainnya juga tersedia (ya, nama subdomain yang sah ada disokong sepenuhnya selepas mengikat nama domain induk)

16 Dalam iOS WeChat versi 6.1, pautan luar gambar yang dikongsi tidak dipaparkan Hanya gambar yang dipautkan dalam halaman akaun rasmi atau gambar pelayan WeChat Ini telah ditetapkan dalam 6.2

17 Adakah anda perlu mengemas kini pautan? Jadikan versi anda sendiri serasi (jssdk serasi dengan versi yang lebih rendah dan tidak memerlukan pihak ketiga untuk melakukan lebih banyak kerja, tetapi beberapa antara muka baru diperkenalkan dalam 6.0.2 dan hanya boleh dipanggil. oleh versi baharu)

18 Orang awam Tandatangan pembayaran tidak sah dan transaksi tidak boleh dimulakan (sila pastikan jweixin.js yang anda gunakan adalah versi dalam talian rasmi. Ia bukan sahaja dapat mengurangkan trafik pengguna, tetapi juga membetulkan pepijat tertentu dan menyalinnya ke pelayan pihak ketiga untuk digunakan Rasmi Kami tidak akan memberikan jaminan untuk sebarang masalah yang timbul)

19. Pada masa ini, pelanggan Android WeChat tidak menyokong ciri H5 baharu pushState. , jadi menggunakan pushState untuk melaksanakan halaman apl web akan menyebabkan tandatangan gagal dalam Android 6.2 Dibetulkan di tengah

20 Kadangkala Android tidak akan melaksanakan muat naik Imej dalam panggilan balik Android6.2 akan menyelesaikan masalah ini. Jika anda perlu menyokong versi yang lebih rendah, anda boleh meletakkan panggilan uploadImage dalam setTimeout dan menangguhkannya sebanyak 100ms

21 Ralat .require menandakan bahawa anda belum melanggan akaun ujian ini hanya akan muncul untuk akaun ujian

22 Koordinat yang dikembalikan oleh getLocation adalah berat sebelah dalam openLocation, kerana getLocation mengembalikan koordinat gps, dan peta Tencent yang dibuka oleh openLocation ialah koordinat Marikh, yang memerlukan pihak ketiga untuk menukar sendiri Sejak versi 6.2, pemerolehan terus koordinat Mars telah disokong

23. Lihat akaun rasmi (tidak ditambah): "menuItem:addContact" tidak dipaparkan pada masa ini, hanya pautan yang tersebar dari akaun rasmi boleh dipaparkan 24. Penyegerakan data pemfailan ICP ditangguhkan selama satu hari Jadi sila ikat pada hari kedua

Lampiran halaman 6-DEMO dan kod sampel

🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜 🎜http://demo.open.weixin.qq.com/jssdk🎜

1475985030261979.jpg

Kod contoh:

http://demo.open.weixin.qq.com/jssdk/sample.zip

Nota: Pautan ke-, java dan java: Kod sampel adalah untuk rujukan pihak ketiga ingat untuk cache token akses dan jsapi_ticket untuk memastikan had kekerapan tidak dicetuskan.

Lampiran 7-Maklum Balas Masalah

Alamat e-mel: weixin-open@qq.com

Subjek e-mel: [Maklum balas WeChat JS-SDK]

Perihalan kandungan e-mel:

Huraikan masalah dalam bahasa ringkas dan terangkan dengan jelas senario di mana masalah itu dihadapi, Tangkapan skrin anda boleh dilampirkan maklum balas akan diproses secepat mungkin.