
# 将华为云Astro轻应用中的应用发布到微信小程序
#### 方案概述
华为云Astro轻应用允许将标准页面或高级页面发布到微信小程序。本节将介绍在华为云Astro轻应用上发布应用到微信小程序的基本操作，包括微信公众平台小程序注册、小程序登录鉴权、发布配置、并验证小程序是否发布成功。
#### 实施步骤
1. 准备微信公众平台账号，即在微信公众平台注册小程序。 
   1. 访问[微信公众平台](https://mp.weixin.qq.com/)，单击右上角"立即注册"。
      图1立即注册   
      ![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001971827169.png "点击放大") 
   
   2. 选择注册的账号类型为"小程序"。
   
   3. 请填写邮箱（该邮箱未被微信公众平台注册，未被微信开放平台注册，未被个人微信号绑定），设置登录密码，填写验证码，并同意相关协议，单击"注册"。 填写的邮箱后续会作为管理员账号进行使用。
      
   
   4. 登录邮箱，查收激活邮件，单击激活链接。
   
   5. 单击激活链接后，按照界面提示继续下一步的注册流程。
      请选择主体类型，由于该发布功能面向的微信公众账号主体类型只能属于企业、政府、媒体或者其他组织，"主体类型"要选择非个人类型，并完善主体信息和管理员信息。
      - 企业类型账号可选择两种主体验证方式：
        - 方式一：需要用公司的对公账户向腾讯公司打款来验证主体身份。打款信息在提交主体信息后可以查看到。
        
        - 方式二：通过微信认证验证主体身份，需支付300元认证费。认证通过前，小程序部分功能暂无法使用。
         
      
      
      
      - 政府、媒体、其他组织类型账号，必须通过微信认证验证主体身份。认证通过前，小程序部分功能暂无法使用。
        
   
   6. 单击"确定"，完成注册流程。
   
   
   
   
2. 使用管理员账号（即注册过程中填写的邮箱）登录[微信公众平台](https://mp.weixin.qq.com/)，选择"管理 \> 成员管理"，在"项目成员"和"体验成员"区域可新增开发者和体验者。
3. 使用管理员账号登录[微信公众平台](https://mp.weixin.qq.com/)，获取如下关键信息并配置业务域名和request合法域名。
   
   图2获取关键信息   
   ![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001944748306.png "点击放大")
   图3配置业务域名1   
   ![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001944589010.png "点击放大")
   图4配置业务域名2   
   ![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001971707441.png "点击放大")
   图5配置"request合法域名"   
   ![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001971827173.png "点击放大")
   
   - AppID：小程序的AppID，小程序的注册类型为非个人的微信小程序。 获取方法：使用管理员账号登录[微信公众平台](https://mp.weixin.qq.com/)，在微信公众平台"开发 \> 开发设置"中，可查看"AppID（小程序ID）"的值。
     
   
   - 小程序代码上传密钥：用于上传小程序代码到微信中的密钥。 获取方法：使用管理员账号登录[微信公众平台](https://mp.weixin.qq.com/)，在微信公众平台"开发 \> 开发设置"中，单击"小程序代码上传密钥"后的"重置"，进行获取。
     
   
   - IP白名单：在华为云Astro轻应用开发环境发布微信小程序前，需要在微信公众平台"开发 \> 开发设置"页面的"小程序代码上传"区域，关闭"IP白名单"。
   
   - 业务域名：使用管理员账号登录[微信公众平台](https://mp.weixin.qq.com/)，在微信公众平台"开发 \> 开发设置"页面的"业务域名"区域，单击"修改"。在弹出的"配置业务域名"页面，将承载服务的华为云Astro轻应用环境访问地址，在页面中调用的请求URL（即前端页面中调用的公共接口URL，包括iframe中的请求URL）都加入业务域名中。
     您需要在"配置业务域名"页面，单击"下载校验文件"，提交工单联系运维人员将校验文件放置在域名根目录下。
     
   
   - request合法域名：将华为云Astro轻应用运行环境的域名，配置到微信公众平台的合法域名中。 配置方法：在微信公众平台"开发 \> 开发设置"页面的"服务器域名"区域，单击"修改"。在"request合法域名" 中，添加华为云Astro轻应用运行环境的域名。华为云Astro轻应用运行环境是指正式发布上线的真实环境。测试完成后，将应用发布至生产环境，即运行环境，供业务用户使用。
     
   
   
   
   
4. 使用开发者账号登录华为云Astro轻应用开发环境，开发免登BO，用于用户通过微信小程序使用发布的应用时，无需用户输入用户名密码，即可获取当前用户身份。 
   单击[这里](https://obs-for-bj4-gongyouyun-update.obs.cn-north-4.myhuaweicloud.com/obs/deploy/wechatLogin-0.0.1.zip)，可获取免登录开发样例。此样例仅作为参考，实际使用时请根据具体场景进行修改，但必须确保入参和出参是一致的。同时需要将服务的请求地址配置到系统参数"token_url_in_wechat"中，且入参、出参设置如下：
   - 入参为：
     - code：wx.login后获取的code。
     
     - appid：当前小程序id。
      
   
   - 出参为华为云Astro轻应用用户登录后，生成的token。 同个租户创建不同的应用，发布到微信小程序前，开发免登BO时，为了防止不同小程序的业务用户出现混淆（即为了防止小程序A的业务用户也可登录小程序B），需要对业务逻辑做处理。建议业务用户数据保存到PortalUser表中时，可使用字段"id"代替"usrName"，或者"usrName"前加上应用"id"加以区分。
     
   
   
   
   
5. 在华为云Astro轻应用开发环境，创建要发布的小程序应用，在应用内根据需求创建对象、页面、服务编排和脚本等组件。 
   在华为云Astro轻应用中如何创建应用，请参见[使用华为云Astro轻应用创建应用](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9003.html)。
   
   
6. 登录华为云Astro轻应用发布小程序。 
   支持在开发环境、沙箱环境以及运行环境中发布小程序，小程序中调用的后台接口服务所承载的环境，取决于在哪个环境中发布小程序。
   - 在开发环境中，发布小程序步骤如下：
     1. 在应用设计器的顶部菜单栏中，单击"发布"，选择"应用打包 \> 生成移动应用"。
     
     2. 在发布应用中，选择"微信"。
     
     3. 在"发布微信小程序"页面，配置如下参数。
        - 小程序ID：小程序的AppID，参数获取方法请参见[3]。
        
        - 版本号：发布的版本号。每次发布时需要使用新的版本号，使用之前请确认版本号是否已被使用过。
        
        - 主页：选择一个页面作为首页，即显示的默认页面。
        
        - 小程序代码上传密钥：用于上传小程序代码到微信中的密钥，参数获取方法请参见[3]。
         
     
     4. （可选）单击"预览"，可生成小程序预览页面的二维码，开发者使用微信扫一扫功能，可预览小程序页面。
     
     5. 设置完成后，单击"发布"。
      
   
   - 在沙箱环境及运行环境中，发布小程序步骤如下（需要提前在沙箱环境或运行环境中，安装业务应用）：
     1. 在沙箱环境或运行环境的左侧菜单栏中，选择"应用管理 \> 应用列表"。
     
     2. 在应用程序列表中，单击待发布应用后的"..."，再选择"发布小程序"。
     
     3. 在发布应用页面，选择"微信"。
     
     4. 在"发布微信小程序"页面，配置如下参数。
        - 小程序ID：小程序的AppID，参数获取方法请参见[3]。
        
        - 版本号：发布的版本号。每次发布时需要使用新的版本号，使用之前请确认版本号是否已被使用过。
        
        - 主页：选择一个页面作为首页，即显示的默认页面。
        
        - 小程序代码上传密钥：用于上传小程序代码到微信中的密钥，参数获取方法请参见[3]。
         
     
     5. （可选）单击"预览"，可生成小程序预览页面的二维码，开发者使用微信扫一扫功能，可预览小程序页面。
     
     6. 设置完成后，单击"发布"。
      
    
   
   
7. 使用小程序开发者账号登录[微信公众平台](https://mp.weixin.qq.com/)，选择"管理 \> 版本管理"，在上传的小程序后单击"提交审核"。
   
   您也可以在"版本管理"页面，单击小程序后的下拉图标，将小程序设置为体验版，生成小程序预览页面的二维码，体验者用户可通过微信扫一扫功能预览小程序。
   图6上传小程序   
   ![](https://support.huaweicloud.com/bestpractice-astrozero/zh-cn_image_0000001944748314.png "点击放大")
   审核通过后（审核时长一般为一周内），在微信小程序中可搜索到上传的应用。
   
   
 
