小程序网络的说明

在使用小程序网络相关 API 时,需要注意以下问题:

1. 服务器域名配置

每个微信小程序需要事先设置一个通讯域名,小程序可以跟指定的域名与进行网络通信。包括普通 HTTPS 请求(request)、上传文件(uploadFile)、下载文件(downloadFile) 和 WebSocket 通信(connectSocket

配置流程

服务器域名请在 小程序后台-设置-开发设置-服务器域名 中进行配置,配置时需要注意:

  • 域名只支持 https (requestuploadFiledownloadFile) 和 wss (connectSocket) 协议;
  • 域名不能使用 IP 地址、localhost 或带有端口号
  • 域名必须经过 ICP 备案;
  • api.weixin.qq.com 不能被配置为服务器域名,相关API也不能在小程序内调用。 开发者应将 appsecret 保存到后台服务器中,通过服务器使用 appsecret 获取 accesstoken,并调用相关 API。 对于每个接口,分别可以配置最多 20 个域名

HTTPS 证书

小程序必须使用 HTTPS 请求。小程序内会对服务器域名使用的 HTTPS 证书进行校验,如果校验失败,则请求不能成功发起。由于系统限制,不同平台对于证书要求的严格程度不同。为了保证小程序的兼容性,建议按照最高标准进行证书配置,并使用相关工具检查现有证书是否符合要求。

对证书要求如下:

  • HTTPS 证书必须有效。证书必须被系统信任,部署SSL证书的网站域名必须与证书颁发的域名一致,证书必须在有效期内;
  • iOS 不支持自签名证书;
  • iOS 下证书必须满足苹果 App Transport Security (ATS) 的要求; TLS 必须支持 1.2 及以上版本。部分旧 Android 机型还未支持 TLS 1.2,请确保 HTTPS 服务器的 TLS 版本支持1.2及以下版本;
  • 部分 CA 可能不被操作系统信任,请在选择证书时注意小程序和各系统的相关通告。

跳过域名校验

在微信开发者工具中,可以临时开启 开发环境不校验请求域名、TLS版本及HTTPS证书 选项,跳过服务器域名的校验。此时,在微信开发者工具中及手机开启调试模式时,不会进行服务器域名的校验。

在服务器域名配置成功后,建议关闭此选项进行开发,并在各平台下进行测试,以确认服务器域名配置正确。

2. 关于请求

  • 默认超时时间和最大超时时间都是 60s
  • request、uploadFile、downloadFile 的最大并发限制是 10 个
  • 网络请求的 referer header 不可设置。其格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为小程序的 appid,{version} 为小程序的版本号,版本号为 0 表示为开发版、体验版以及审核版本,版本号为 devtools 表示为开发者工具,其余为正式版本。 小程序进入后台运行后(非置顶聊天),如果 5s 内网络请求没有结束,会回调错误信息 fail interrupted;在回到前台之前,网络请求接口调用都会无法调用。

3. 关于服务器返回

返回值编码

  • 建议服务器返回值使用 UTF-8 编码。对于非 UTF-8 编码,小程序会尝试进行转换,但是会有转换失败的可能。
  • 小程序会自动对 BOM 头进行过滤。

回调

  • 只要成功接收到服务器返回,无论statusCode是多少,都会进入success回调。请自行根据业务逻辑对返回值进行判断。
Copyright © Sodo Tech 2014-2018 all right reserved,powered by Gitbook最后更新: 2018-06-07 16:40

results matching ""

    No results matching ""