WeChat-Proxy微信代理服務(wù)
WeChat-Proxy 是微信代理服務(wù)。
功能
1、全局緩存微信 access_token, jsapi ticket等。
2、多路轉(zhuǎn)發(fā)微信回調(diào)消息。
3、簡(jiǎn)化微信 oauth2 認(rèn)證流程。
4、簡(jiǎn)化微信支付流程。
5、簡(jiǎn)化微信 JSSDK 簽名流程。
使用說明:
1、公眾號(hào)注冊(cè):
/register?key=...&appid=...&secret=... &token=&aes= &mch_id=&mch_key=&server_ip= &expires=&call=/msg&call=/api&call=...
參數(shù)說明:
key: 自定義的app名稱,支持中文,也可以是隨機(jī)生成的字符串。(必填)
appid: 微信公眾號(hào)的 appid。(必填)
secret: 微信公眾號(hào)的 secret。(必填)
token, aes: 用于微信回調(diào)消息加解密的秘鑰。(/msg接口)
如果設(shè)置了此項(xiàng)參數(shù),后臺(tái)應(yīng)用可以直接以json明文格式接收和回復(fù)微信回調(diào)消息。(/msg/json接口)
mch_id, mch_key, server_ip: 用于微信支付的賬號(hào)、秘鑰和服務(wù)器IP。(/pay接口) 如果設(shè)置了此項(xiàng)參數(shù), 可以使用簡(jiǎn)單的 url 請(qǐng)求實(shí)現(xiàn)微信支付功能。
expires: 過期時(shí)間,單位秒。如果設(shè)置此項(xiàng)參數(shù),注冊(cè)信息會(huì)在到期后自動(dòng)刪除。 call: 可用API,可以重復(fù)多次。如果設(shè)置此項(xiàng)參數(shù),該app注冊(cè)信息僅可用于已列出的api接口。
2、access_token 全局緩存:
access_token 全局緩存自動(dòng)獲取最新的 access_token 值緩存在代理服務(wù)器內(nèi)存中。
access_token 全局緩存支持多進(jìn)程、多服務(wù)器共享 access_token,還可以無限次獲取,簡(jiǎn)化后臺(tái)服務(wù)的開發(fā)難度。
調(diào)用/register接口完成注冊(cè)后,使用已注冊(cè)的 test 名稱調(diào)用 /api 接口:
/app/test/api /app/test/qyapi
強(qiáng)制刷新 access_token:
/app/test/api/new /app/test/qyapi/new
3、微信回調(diào)消息的多路轉(zhuǎn)發(fā):
微信回調(diào)消息的多路轉(zhuǎn)發(fā)可以將微信公眾號(hào)的回調(diào)消息轉(zhuǎn)發(fā)給多個(gè)后臺(tái)服務(wù),按照call參數(shù)的設(shè)置順序返回第一個(gè)非空的處理結(jié)果。
如果在/register接口中設(shè)置了token和aes參數(shù),/msg/json 接口支持微信消息的自動(dòng)加解密服務(wù),后臺(tái)call網(wǎng)址可直接使用 json 明文協(xié)議實(shí)現(xiàn)交互。
/app/test/msg?call=...&call=... /app/test/msg/json?call=...&call=...
4、微信登錄:
snsapi_base 方式登錄驗(yàn)證:
/app/test/auth?call=...&state=&lang=
snsapi_info 方式登錄驗(yàn)證:
/app/test/auth/info?call=...&state=&lang=
驗(yàn)證成功時(shí),call網(wǎng)址將收到 json 數(shù)據(jù)包(POST),包含用戶的 openid, unionid, 以及用戶的其他信息。
state和lang是可選參數(shù),具體含義請(qǐng)參考微信官方文檔。
5、微信支付:
微信支付二維碼:直接返回二維碼圖片,用戶使用微信掃碼后即可付款。
/app/test/pay/qrcode?fee=...&name=&call=&...
公眾號(hào)網(wǎng)頁支付:公眾號(hào)網(wǎng)頁內(nèi)調(diào)起支付窗口完成支付。(參考實(shí)現(xiàn):/example/jspay.html)
/app/test/pay/js?openid=...&fee=...&name=&call=&...
統(tǒng)一下單:服務(wù)端可調(diào)用統(tǒng)一下單接口獲得支付訂單,省去簽名計(jì)算等步驟。
/app/test/pay?fee=...&name=&call=&...
參數(shù)說明:
fee: 訂單金額,單位分。(必填)
openid: 用戶在該公眾號(hào)下的 openid。(網(wǎng)頁支付必填) 允許使用客戶端 cookie 傳遞此參數(shù)。
name: 訂單名稱。 call: 回調(diào)通知網(wǎng)址。訂單支付成功后將支付結(jié)果發(fā)送至此網(wǎng)址。(JSON)
其他參數(shù)(高級(jí)用法):支持微信統(tǒng)一下單接口 所列舉的其他訂單參數(shù)。具體請(qǐng)參考微信官方文檔。(sign, sign_type 由程序自動(dòng)生成,不可覆蓋)
6、JSSDK:
jsapi_ticket 全局緩存:
/app/test/jsapi
JSSDK 權(quán)限驗(yàn)證配置:直接返回 wx.config({...}); 默認(rèn)獲取全部API權(quán)限。
可選參數(shù):
debug: true或false。
apilist: 逗號(hào)分隔的 JSSDK API 列表。
<script src="/app/test/js/config?debug=true"></script>
微信卡券簽名:
/app/test/js/card
