Rumah  >  Artikel  >  hujung hadapan web  >  Cara melaksanakan pembayaran WeChat untuk pembayaran halaman H5 dengan kemahiran browser_javascript terbina dalam

Cara melaksanakan pembayaran WeChat untuk pembayaran halaman H5 dengan kemahiran browser_javascript terbina dalam

WBOY
WBOYasal
2016-05-16 15:38:071470semak imbas

Disebabkan keperluan projek, pembayaran WeChat perlu ditambahkan pada halaman H5, jadi saya hanya ingin mengatakan bahawa ia sangat rumit, terutamanya apabila penyahpepijatan menyusahkan

Ini ialah dokumen API rasmi WeChat API WeChat

Persediaan untuk pembayaran WeChat

Mohon untuk akaun awam dan aktifkan pembayaran Ini sangat mudah. ​​Hanya gunakan Baidu sendiri
Selepas memohon, konfigurasikan "Direktori Kebenaran Pembayaran", "Direktori Keizinan Ujian" dan "Senarai Putih Ujian" pada tab "Konfigurasi Pembangunan" dalam halaman "Pembayaran WeChat" di halaman platform awam WeChat
Cari "AppID (ID Aplikasi)" dan "AppSecret (Kunci Aplikasi)" dalam "Pusat Pembangun" pada halaman platform awam WeChat
Cari nombor pedagang yang diberikan oleh pembayaran WeChat dalam platform pedagang dan konfigurasikan kunci pembayaran pedagang

Langkah khusus

Pertama, dapatkan prepay_id untuk pembayaran melalui api pembayaran WeChat Di sini anda perlu menggunakan "AppID (ID permohonan)" yang disebutkan di atas, "AppSecret (kunci aplikasi)", "nombor pedagang yang diberikan oleh pembayaran WeChat", " "Kunci Pembayaran Pedagang" dan beberapa parameter lain (sila rujuk dokumentasi pembangunan WeChat untuk butiran) disulitkan ke dalam tandatangan menggunakan MD5 (tandatangan pertama). Selepas mendapatkan prabayar_id, gunakan prabayar_id dan beberapa parameter lain (sila rujuk kepada Dokumentasi pembangunan WeChat untuk butiran) untuk menyulitkannya menjadi tandatangan menggunakan MD5 (Tandatangan kedua) Kemudian pada bahagian hadapan, gunakan API js yang disediakan oleh penyemak imbas terbina dalam WeChat, WeixinJSBridge.invoke, untuk memanggil halaman pop timbul WeChat. pembayaran. Di sini anda perlu menggunakan tandatangan kedua di atas

Kod khusus adalah seperti berikut

$.get('/xxx',function(data){
 if(data && data !== ""){
  var _data = $.parseJSON(data)[0];
  if(parseInt(_data.userAgent) < 5){
  alert('您的微信版本低于5.0,无法使用微信支付!');
  return false;
  }
  WeixinJSBridge.invoke('getBrandWCPayRequest',{
  'appId': _data.appId,
  'timeStamp': _data.timeStamp,
  'nonceStr': _data.nonceStr,
  'package': 'prepay_id=' + _data.packageOne,
  'signType': _data.signType,
  'paySign': _data.paySign
  },function(res){
   if(res.err_msg === 'get_brand_wcpay_request:ok'){
   alert('支付成功,返回订单列表!');
   }else if(res.err_msg === 'get_brand_wcpay_request:cancel'){
   alert('取消支付!');
   }
  });

 }
});

Beberapa titik kegagalan mudah memerlukan perhatian

Pautan pembayaran tidak sepadan dengan pautan yang dikonfigurasikan pada platform pembangunan

Sebanyak 2 tandatangan diperlukan, dan parameter yang diperlukan adalah berbeza. Tandatangan yang digunakan dalam JS ialah tandatangan kedua

Sekiranya terdapat aksara Cina dalam badan yang perlu dilepaskan, masih terdapat beberapa masalah yang belum selesai sepenuhnya, iaitu tiada masa untuk menilai kesahihan pembayaran lokasi pembayaran WeChat kekal terlalu lama, pesanan itu mungkin di laman web kami telah tamat tempoh, tetapi pembayaran masih boleh berjaya dalam pembayaran WeChat Jika sesiapa tahu bagaimana untuk menyelesaikan masalah ini, saya harap mereka boleh memberitahu anda penyelesaiannya

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