一、實體對應關係:php
Application — 支付記錄實體 -- 支付記錄詳情html
二、流程git
一、生成訂單選擇支付類型github
二、支付寶:PC端、手機端、掃碼;微信:微信公衆號支付、掃碼支付、H5支付。redis
客戶端版本(Browser-Agent):MicroMessenger(微信瀏覽器)、AliApp、Mobile或iPad、PCapi
三、對於微信中瀏覽器
3.一、支付須要用戶受權獲取openId緩存
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842微信
經過攔截器攔截微信中的請求來獲取openId放入cookie中時效5分鐘,openId爲空時進行受權,經過code換取網頁受權access_token獲取openId,cookie
redirect_uri到受權回調設置cookie中openid的值時效5分鐘,Redirect到請求頁面,完成受權。
3.二、下單以前先檢查是否完成交易
3.三、生成簽名:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3,可利用treemap天然排序,封裝成xml參數,
MD5方式簽名
調用下單接口:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
獲取PREPAY_ID,存放在redis緩存中,時效2小時,過時從新下單霍如PREPAY_ID
3.四、H5調起微信支付的內置JS
3.五、定時回調接收通知
3.六、JSAPI流程:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_4
3.七、可參考:http://www.javashuo.com/article/p-flhcmuha-by.html
3.支付API
https工具:https://github.com/kevinsawicki/http-request
微信api:https://pay.weixin.qq.com/wiki/doc/api/index.html