golang的gin框架開(kāi)發(fā)微信小程序后端,使用到微信支付功能。微信支付的回調(diào)調(diào)試一般都在服務(wù)器進(jìn)行,但是折騰了一下,于是就有了以下記錄。
具備的條件:
1.有一個(gè)all in one小主機(jī),上面安裝了pve虛擬機(jī),虛擬機(jī)里安裝了openwrt(路由器),ubuntu用來(lái)安裝數(shù)據(jù)庫(kù)、redis、nginx(用來(lái)部署ssl證書(shū),反向代理到開(kāi)發(fā)機(jī)的小程序后端)
2.路由器撥號(hào)能獲取ipv4或ipv6公網(wǎng)ip
3.有一個(gè)域名,能申請(qǐng)ssl證書(shū)
4.路由器可以設(shè)置端口轉(zhuǎn)發(fā)
記錄開(kāi)始:
1.設(shè)置域名解析
網(wǎng)上查找教程《保姆教程 OpenWrt 配置 Cloudflare DDNS》
a.openwrt 中的ddns要有Cloudflare.com-v4,沒(méi)有的話請(qǐng)參照教程,或自己編譯固件
b.去cf申請(qǐng)API key ,參照上面的教程
c.openwrt路由中的DDNS配置,也可配置ipv6的。
重點(diǎn):如果使用的是api token,注意:用戶名必須是:Bearer
2.申請(qǐng)ssl證書(shū),并將域名解析配置到cf
去域名的控制臺(tái)申請(qǐng)ssl免費(fèi)證書(shū),一般為一年有效期.我的域名是在阿里買(mǎi)的,dns解析配置到了cf,參考cloudflare解析域名+CDN(以阿里云為例)+寶塔 - CodeAntenna
3.nginx反向代理
all in one小主機(jī)內(nèi)的ubuntu安裝nginx,反向代理到開(kāi)發(fā)機(jī)的8010端口
安裝nginx
sudo apt update
sudo apt install nginx
新建站點(diǎn)配置文件
nano /etc/nginx/conf.d/pc.conf
文件內(nèi)容
#設(shè)定實(shí)際的服務(wù)器列表
upstream pc_server{
server 192.168.2.212:8010; #開(kāi)發(fā)機(jī)地:端口
}
server {
listen 443 ssl;
server_name 123456.123456.xyz; #你能配置解析的域名
# ssl證書(shū)配置
ssl_certificate /etc/nginx/cert/123456.123456.xyz.pem;
ssl_certificate_key /etc/nginx/cert/123456.123456.xyz.key;
gzip off;
# ssl驗(yàn)證相關(guān)配置
ssl_session_timeout 5m; #緩存有效期
ssl_session_cache shared:SSL:10m; #置存儲(chǔ)session參數(shù)的緩存的類(lèi)型和大小
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #加密算法
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #安全鏈接可選的加密協(xié)議
ssl_prefer_server_ciphers on; #使用服務(wù)器端的首選算法
#編碼格式
charset utf-8;
#代理配置
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#對(duì)應(yīng)最上邊的pc_server
proxy_pass http://pc_server;
}
}
配置文件中123456.123456.xyz.pem和123456.123456.xyz.key是我在阿里申請(qǐng)的ssl證書(shū)
? ? ? ? ? ? ? ? ? ?192.168.2.212:8010是我的開(kāi)發(fā)機(jī)地址和小程序后端端口
測(cè)試配置
nginx -t
重載配置
nginx -s reload
這樣配置就用ubuntu的443端口反向代理了192.168.2.212開(kāi)發(fā)機(jī)的8010端口
4.openwrt路由器端口轉(zhuǎn)發(fā):網(wǎng)絡(luò)->防火墻->端口轉(zhuǎn)發(fā)
內(nèi)部ip是ubuntu的ip地址,如果外部端口443被運(yùn)營(yíng)商封了,可以設(shè)置其他端口,但是遠(yuǎn)程訪問(wèn)時(shí)就需帶端口訪問(wèn)
如,設(shè)置為8010,則微信支付回調(diào)地址為 https://123456.123456.xyz:8010/回調(diào)路徑
瀏覽器外網(wǎng)訪問(wèn)效果:
?
goland控制臺(tái)
整個(gè)流程:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-489536.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-489536.html
到了這里,關(guān)于微信支付本地調(diào)試,nginx反向代理,使用本地回調(diào)地址notify_url的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!