滴滴云微信小程序部署指导

滴滴云技术支持发表于:2018年11月19日 10:23:21

小程序.png

部署示意图

云上部署微信小程序,需要首先购买云主机及EIP、安全证书等资源,并且完成域名备案。(滴滴云提供免费备案服务,协助用户完成域名备案。)

相关资源准备妥当以后,即可开始部署相关服务了。部署任务的第一步需要在滴滴云主机上完成Nginx等Web服务部署。本文以Nginx举例,如果需要其他案例或者购买等指导,请登录滴滴云官网帮助与支持查看。                                                 

1、登录dc2,安装nginx:

sudo su
yum install –y nginx
systemctl start nginx
systemctl enable nginx

2、 编辑测试页面:

cd /usr/share/nginx/html
mv index.html index.html.bak
vi index.html
This is hello from Didi!

保存退出

3、 本次测试域名chaucerhe.com,已在滴滴云进行转入备案,有关备案流程请参考以下链接。

https://www.didiyun.com/icp.html

4、 小程序中应用的域名必须是https开头,因此要为网站服务添加安全证书。

本例中使用了滴滴云web应用防火墙(WAF),并在滴滴云官网购买了安全证书,具体WAF的开通方式和安全证书购买流程请参考滴滴云官网。WAF基本设置如下:

(1)  在WAF中添加域名。

image.png

(2)  添加需要保护的域名。

  image.png

(3)设置https并添加证书。

       image.png

(4)设置源站IP。

image.png

源站IP为滴滴云主机的EIP。

(5)添加完成后,将WAF的CNAME添加到域名供应商的CNAME记录中,本例中的域名是在阿里云购买,请参考以下设置。

      image.png

二、微信小程序前端开发

1、 访问微信公众平台https://mp.weixin.qq.com/,注册并登录。

2、 参照以下链接完善小程序信息,先在微信开发者工具创建项目。

https://developers.weixin.qq.com/miniprogram/introduction/index.html

3、 本例是针对微信自带模板小程序“hello world”的修改,获取第一部分中滴滴云主机的网页内容。

打开微信开发者工具,以下为模板小程序的页面文件结构。

      image.png

我们需要对index.js中的部分代码进行修改,以下为修改后的代码。注意将url修改为滴滴云主机的域名。

//index.js
//获取应用实例
const app = getApp()
 
Page({
  data: {
    motto: 'Hello world',
    userInfo: {},
    hasUserInfo: false,
    canIUse: wx.canIUse('button.open-type.getUserInfo')
  },
  //事件处理函数
  bindViewTap: function() {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  onLoad: function () {
    const _this = this
    wx.request({
      url: 'https://chaucerhe.com',
      success:function(res) {
        _this.setData({
          motto: res.data
        })
      }
    })
  
    if (app.globalData.userInfo) {
      this.setData({
        userInfo: app.globalData.userInfo,
        hasUserInfo: true
      })
    } else if (this.data.canIUse){
      // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
      // 所以此处加入 callback 以防止这种情况
      app.userInfoReadyCallback = res => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    } else {
      // 在没有 open-type=getUserInfo 版本的兼容处理
      wx.getUserInfo({
        success: res => {
          app.globalData.userInfo = res.userInfo
          this.setData({
            userInfo: res.userInfo,
            hasUserInfo: true
          })
        }
      })
    }
  },
  getUserInfo: function(e) {
    console.log(e)
    app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  }
})

需要注意的是要将url修改为滴滴云主机的域名。

image.png 点击真机调试,弹出二维码,打开微信扫描二维码,

image.png

可以看到从滴滴云主机的web服务获取的内容。

image.png