国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

微信支付如何實現內置瀏覽器的H5頁面支付

2019-11-20 11:31:32
字體:
來源:轉載
供稿:網友

因為項目需要,要在H5頁面中加入微信支付,所以便去嘗試,只想說真的很坑,尤其調試起來不方便

這是微信的官方API文檔 微信API

微信支付的準備工作

申請公眾號,申請開通支付,這個很簡單,自行百度
申請好之后 在微信公眾平臺頁面的“微信支付”頁面中的“開發配置”Tab上配置“支付授權目錄”,“測試授權目錄”,“測試白名單”
在微信公眾平臺頁面的“開發者中心”中找到“AppID(應用ID)”和“AppSecret(應用密鑰)”
在商戶平臺中找到微信支付分配的商戶號,以及自己配置一個商戶支付密鑰

具體步驟

首先通過微信支付的api 獲得支付用的prepay_id,這里需要用到上面提到的“AppID(應用ID)”,“AppSecret(應用密鑰)”,“微信支付分配的商戶號”,“商戶支付密鑰”以及其他的一些參數(具體參照微信開發文檔)用MD5加密成簽名(第一次簽名)獲得prepay_id后,用prepay_id和一些其他參數(具體參照微信開發文檔)用MD5加密成簽名(第二次簽名)然后在前端通過微信內置瀏覽器提供的js API,WeixinJSBridge.invoke來調用微信支付的彈出頁面,這里需要用到上面的第二次的簽名

具體代碼如下

$.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('取消支付!');   }  }); }});

幾個容易失敗點需要注意

支付鏈接和在開發平臺配置的鏈接不匹配

總共需要2次簽名,并且所需的參數是不同的,在JS中用到的簽名是第二次簽名,不要混淆參數傳遞的不能有錯

如果body中有中文需要轉義其中還有一些問題沒有完全解決,就是位置支付沒有一個判斷失效的時間,如果在微信支付的彈出層停留時間太久了,可能這個訂單在我們網站上已經失效了,可在微信支付中仍然能支付成功,如果有高人知道這個問題怎么解決的,希望能告訴解決辦法

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上犹县| 盘山县| 特克斯县| 醴陵市| 白河县| 古田县| 会同县| 南汇区| 托克托县| 长宁区| 军事| 达拉特旗| 文水县| 常熟市| 连平县| SHOW| 台中市| 彩票| 巴彦县| 全南县| 大洼县| 泌阳县| 抚宁县| 丽江市| 通州市| 金门县| 岑巩县| 新平| 铁力市| 梁山县| 新安县| 那坡县| 辰溪县| 方山县| 修文县| 东阿县| 通江县| 阜阳市| 扎囊县| 石林| 恩平市|