1. 程式人生 > >微信公眾號開發--------微信支付

微信公眾號開發--------微信支付

前言

公司最近接了個專案,該專案需要用到微信支付模組。本想簡單點處理直接前端發起支付,後端回撥接收。但前端不知道出了什麼問題,一直無法成功調起微信支付。無奈只好轉後臺來做。

開發流程

1、先在微信支付 商家裡配置授權目錄,如果你的授權目錄是http://www.xxx.com/wechat/,那你的支付地址(jsp/controller地址)則必須是http://www.xxx.com/wechat/xxx。微信支付授權目錄配置地址:  https://pay.weixin.qq.com/index.php/extend/pay_setting

2、獲取微信支付的商戶號和金鑰,微信公眾號的appid

3、配置在公眾號上有個跳轉地址(我暫時的做法是發個資訊給後臺,後臺傳個地址給微信客戶端,然後在點選這個地址進行跳轉)

4、後臺開發

4.1 程式碼可以從微信官網上獲取demo,進行修改(注意重點:我是用MD5加密,先進行一次加密,然後發起 統一下單請求給微信服務端,微信服務端返回prepare_id和其他資訊,裡面有個sign值(神坑,我以為是給頁面上的paySign,結果測試不是),用這個prepare_id再進行第二MD5加密,然後返回給頁面,頁面再呼叫微信核心發起支付請求

4.2 md5加密生成簽名的時候需要注意的是先排序再生成簽名

第一次排序如下:

appid=你的微信服務號APPid&body=標題&mch_id=微信支付商戶號&nonce_str=隨機碼&notify_url=通知回撥地址&openid=當前支付使用者openip&out_trade_no=訂單號&spbill_create_ip=ip&total_fee=金額(單位是分)&trade_type=JSAPI&key=微信支付商家金鑰

總結

    其實真正做完是不難,主要就是要注意:

    1、要兩次簽名,第一次簽名給微信服務端獲取prepare_id,第二次簽名給頁面發起支付請求。

    2、授權目錄要配置好,網上很多人說授權的域名一定要認證過的域名,其實不用,我用ngrok生成的域名也一樣可以。