琪付云

易支付pro版jsapi免小程序版插件安装教程以及插件

91 阅读
文章摘要

用于不需要小程序调用jsapi Docker 镜像部署(1.0.1) 镜像 js-mxc:1.0.1,适用 Linux amd64,包含 Python 和依赖。密钥只通过环境变量 API_KEY 设置,不再读取 key.txt,也无需容器卷。未传入、空字符串或纯空白表示不校验。 导入 宝塔 Docker → 本地镜像 → 导入镜像,选择服务器上的 .t...

用于不需要小程序调用jsapi
python 版
以宝塔面板为例添加一个 python项目 使用 3.6 版本 然后项目路径 是这个插件的 “py” 文件夹


启动命令是:python app.py
命令:pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
执行完 启动就行了
添加之后 点终端 安装依赖
Docker版 镜像部署(1.0.1)
镜像 js-mxc:1.0.1,适用 Linux amd64,包含 Python 和依赖。密钥只通过环境变量 API_KEY 设置,不再读取 key.txt,也无需容器卷。未传入、空字符串或纯空白表示不校验。

导入

宝塔 Docker → 本地镜像 → 导入镜像,选择服务器上的 .tgz 文件。

命令创建启动容器(二选一)

无密钥,仅供宿主机访问:

docker run -d --name js-mxc --restart unless-stopped \
  -p 127.0.0.1:8088:5000 js-mxc:1.0.1

设置密钥:

docker run -d --name js-mxc --restart unless-stopped \
  -p 127.0.0.1:8088:5000 \
  -e API_KEY='替换为你的密钥' js-mxc:1.0.1

8088 是自选宿主机端口,右侧容器端口固定为 5000。需要其他机器访问时使用 -p 8088:5000 并配置服务器防火墙;对外访问请设置密钥。

宝塔手动创建启动容器

选择 js-mxc:1.0.1 → 创建容器,配置服务器端口和容器端口 5000。在「环境变量」中添加 API_KEY=你的密钥;不需要密钥则不添加。无需配置存储卷。启动命令保持默认。

测试

不触发真实转换的服务检查:

curl -i http://127.0.0.1:8088/convert \
  -H 'Content-Type: application/json' -d '{}'

预期 HTTP 400,提示缺少 trade_no,表示服务可达。有密钥的实例可用下面命令检查鉴权(预期 HTTP 401):

curl -i http://127.0.0.1:8088/convert \
  -H 'Content-Type: application/json' -d '{"trade_no":"auth-check"}'

实际调用:

curl -i --max-time 65 http://127.0.0.1:8088/convert \
  -H 'Content-Type: application/json' \
  -d '{"trade_no":"真实交易号","key":"你的密钥"}'

无密钥实例可省略 JSON 中的 key。设置密钥后,缺少或错误的 key 返回 401。GET 接口仍使用 ?key=你的密钥。

容器 DNS / 出网故障排查

本次服务器已验证的原因:宿主机可以解析域名,容器报 Temporary failure in name resolution,直接连接网关 IP 也报 No route to host;firewalld 缺少 Docker 区域,导致网桥转发被拒绝。通过重启 Docker 恢复其自动管理的区域和网桥规则后,原容器恢复正常,无需重新构建镜像或更换 DNS。

先检查:

getent ahostsv4 mcgw.alipay.com
docker exec js-mxc cat /etc/resolv.conf
docker exec js-mxc python -c "import socket; print(socket.gethostbyname('mcgw.alipay.com'))"
firewall-cmd --get-active-zones
docker ps

如果确认是 Docker 与 firewalld 规则缺失,并已安排好正在运行容器的短暂停机,再执行:

systemctl restart docker
docker ps
firewall-cmd --get-active-zones

Docker 应自动恢复 docker 区域中的 docker0 / br-* 网桥。不要关闭防火墙、清空规则,或把容器改为特权/host 网络来绕过问题。镜像无法修复目标宿主机的防火墙配置。

只检查网络,不传交易号:

docker exec js-mxc python -c "import socket,requests; print(socket.gethostbyname('mcgw.alipay.com')); r=requests.get('http://mcgw.alipay.com/gateway.do', timeout=10, allow_redirects=False); print(r.status_code)"
curl -i --max-time 5 http://127.0.0.1:8088/convert -H 'Content-Type: application/json' -d '{}'

本次结果:支付宝域名解析成功、网关返回 HTTP 302、本机服务返回预期的 HTTP 400(缺少交易号)。这验证网络可达,不代表真实交易转换或支付已经成功。

容器默认沿用宿主机 DNS;只有已确认 DNS 服务器本身不可用且容器出网正常时,才在创建容器时设置适合该服务器网络的 --dns。仅指定 DNS 不能修复被防火墙拒绝的容器出网。

💰 付费下载

下载此资源需要支付 ¥600.00

立即购买
分享到:
手机扫码阅读

微信或手机浏览器扫一扫,随时随地随心阅读与分享

收藏 0

发表评论