V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HashV2
V2EX  ›  程序员

微信小程序可以让用户自己选服务器吗?

  •  
  •   HashV2 · 64 天前 · 2452 次点击
    这是一个创建于 64 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在公司有产品主要功能再 admin 页面,但是有部分功能在 app 端(基本逻辑就是 admin 进行相关的功能配置,app 端点击执行功能),客户有 5-10 个,每个客户都需要在自己的内网机房建服务端,然后开放 app 相关的 api 到公网

    因为维护各个版本的安卓 /ios 包比较吃力,想转为微信小程序

    逻辑大概是这样:

    用户在选择服务器通过认证后可以绑定微信 以后再次打开小程序会自动连接到该服务器

    这种模式可行吗?如果不可行的话有没有其它的方案可以解决?

    24 条回复    2021-05-30 22:43:28 +08:00
    yitingbai
        1
    yitingbai   64 天前
    微信小程序运行期间不可以改服务器地址, 但是你可以这么做, 服务端 api 中转到不同的目标服务器, 切换逻辑在服务端
    HashV2
        2
    HashV2   64 天前
    没做过微信小程序开发,但是有前端经验
    两个星期能速成不?(这个 app 特别简单,只有登陆页面+列表页,只要对接大概五六个接口即可)
    HashV2
        3
    HashV2   64 天前
    @yitingbai #1 就是我需要有一台服务器部署一个应用去专门对接微信然后再分发相关的请求?
    shapl
        4
    shapl   64 天前
    @HashV2 #2 会 vue 的话,用 uniapp 开发上手很快。
    shapl
        5
    shapl   64 天前
    @HashV2 #2 当然页面太简单的话,直接原生写就完事了。
    joooooker21
        6
    joooooker21   64 天前
    可以用 nginx 做反向代理 , 小程序请求后台接口时带上客户标识即可
    yitingbai
        7
    yitingbai   64 天前
    @HashV2 肯定要有一台服务器和小程序通讯啊, 如果业务非常简单, 也不必再写一个中转服务端, 直接用 nginx 转发到不同的目标服务器即可,
    HashV2
        8
    HashV2   64 天前
    @shapl #4 那可以的 页面超级很简单 我也有 vue 的项目开发经验 现在是想确定方案的可行性
    HashV2
        9
    HashV2   64 天前
    @yitingbai #7 了解了 app 部分的业务确实非常简单 中转服务器只需要部署 nginx 的话确实非常可行 因为给的开发周期不是很长 不想再写一个应用去做认证和分发 能在原代码上更新对接一下微信的认证就很好
    HashV2
        10
    HashV2   64 天前
    感觉总的来说挺可行的 下班了 周一再回帖
    winnerczwx
        11
    winnerczwx   64 天前
    @yitingbai #1 楼主说是在内网自建服务器, 中转应该是不行的吧
    jame
        12
    jame   64 天前
    flutter 了解一下
    aristolochic
        13
    aristolochic   64 天前
    所以……就是 Multi tenant 呗
    Web 实现的多租户还是太野了吧,就算有微信的绑定啥的
    建议还是加个 API 网关吧。不加网关你的合法域名要加到多长啊,现在客户数量少,以后呢?
    ch2
        14
    ch2   64 天前
    小程序发请求必须域名 https+备案+后台白名单(有个数限制),你这想法一看就不靠谱
    Felldeadbird
        15
    Felldeadbird   64 天前
    中转服务器啊。
    小程序 发送给 微信小程序管理后台绑定的域名

    绑定的域名将数据 转发 给 对应的域名。
    TimeRain
        16
    TimeRain   64 天前
    直接云开发吧
    musi
        17
    musi   64 天前
    可以借助云函数做中转,就不必硬上一个中装服务器了
    OHyn
        18
    OHyn   64 天前
    如果这些服务都加了白名单,那 ok ;
    无非是动态处理一下请求地址的问题。但我记得小程序白名单编辑次数有限制?
    所以为了方便,还是自己做个反向代理吧。
    no1xsyzy
        19
    no1xsyzy   64 天前
    @winnerczwx 内网倒是可以自己 mitm 自己,就是那个经典的「外网访问则找到公网走路由器端口映射,内网则不经过路由直接访问服务器」的问题。但是客户网络环境是否允许你这么做也是问题。
    nekochyan
        20
    nekochyan   63 天前
    微信小程序必须用 https 发请求,并且以前是有 20 个白名单限制,不过现在已经取消了 20 个限制了,具体上限是多少就不知道,可以去微信小程序文档看看
    HashV2
        21
    HashV2   62 天前
    @nekochyan #20 还好 准备冲小程序了 客户数量不会超过 20 个
    HashV2
        22
    HashV2   62 天前
    @musi #17 云函数?我简单搜了一下不太明白,云函数做分发吗? 学习成本大不?
    musi
        23
    musi   62 天前
    @HashV2 对,使用云函数做分发,唯一的学习成本可能就是学一下 Node.js 了,小程序每个月还有一定的免费额度,用户量不大的话刚刚好
    xiaoyiyu
        24
    xiaoyiyu   55 天前 via iPhone
    曲线模式,自己的小程序授权自己的第三方服务,然后通过前端输入的域名,通过第三方接口增加服务域名配置。
    例如:小程序 A, 服务商 B 均为同一家公司,小程序 A 使用 a.com 提供服务,在小程序 A 内可以通过 a.com/change 提交用户需要的域名 b.coma.com 服务端收到请求后调用服务商 B 的修改小程序域名接口增加 b.com;同时前端修改请求域名为 b.com

    相关文档: https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Mini_Program_Basic_Info/Server_Address_Configuration.html

    目前支持 1000 个域名,各类请求各 200
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1963 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 04:01 · PVG 12:01 · LAX 21:01 · JFK 00:01
    ♥ Do have faith in what you're doing.