微信小程序开发:使用微信开发者工具与Web Service之间通信

微信小程序开发:使用微信开发者工具与Web Service之间通信(已登录为例子)

准备

首先下载好微信开发者工具以及VS2017,注册好账户并在微信开发者工具中申请一个APPID。这一部分步骤网上有很多教程,在这里就不多说了。我这里使用过的服务端是使用的C# 工具为VS2017专业版。

创建微信小程序项目

1.打开微信小程序香项目,创建一个微信小程序项目,输入对应的APPID。这一部分的具体操作大家可以参考微信官方的开发文档。
[外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imblogcqnimg.cn/202zIdW10327110544600.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shad0,text_aHR0cHMoLy9ibG9nLmNzZG6ubmV0L8FxXzQyNDkyMjI4,size_13,color_FFFFFF,t_70756)(n)]
2.创建成功(为了方便我这里使用的是测试号进入的),里面会有一个默认的项目,小伙伴们可以点击运行测试一下是否可以使用。
创建成功
3.创建成功后我们先去掉图中选项。
在这里插入图片描述

微信开发者程序部分

1.前面我们已经做好了配置,现在我们写一个简单的登录界面,如下创建相关页面。
在这里插入图片描述

2.打开login文件夹选中login.wxml,填写相关的wxml代码,为了方便我这里随便写一下,代码如下:

<!--pages/login/login.wxml-->
<view class="container"> 
 <form bindsubmit="formSubmit" bindreset="formReset">
 <view class="login-icon"> 
 </view> 
 <view class="login-from"> 
 <!--账号-->
 <view class="inputView"> 
   <text class="iconfont icon-yonghuming" style="margin-left: 44rpx; "></text>
  <input class="inputText" placeholder="请输入邮箱" bindinput="usernameInput" /> 
 </view> 
 <!--密码-->
 <view class="inputView"> 
  <text class="iconfont icon-mima" style="margin-left: 44rpx; "></text>
  <input class="inputText" password="true" placeholder="请输入密码" bindinput="passwordInput" /> 
 </view> 
 <!--按钮-->
 <view class="loginBtnView"> 
  <button class="loginBtn" type="primary" size="{{primarySize}}" loading="{{loading}}" plain="{{plain}}" disabled="{{disabled}}" bindtap="login">登录(Login)</button> 
 </view> 
 </view> 
</form>
</view>

保存后结果如下:
在这里插入图片描述

创建Web Services服务

  1. 这里我们使用经典的web窗体
    在这里插入图片描述
    在这里插入图片描述
  2. 创建成功后我们右键应用添加一个web服务:
    在这里插入图片描述
  3. 去掉图中的注释:
  4. 写一个方法来响应登录请求,我们这里为了方便,展示不连接数据库。用一个函数来模拟一下。代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace WebApplication1
{
    /// <summary>
    /// login 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
     [System.Web.Script.Services.ScriptService]
    public class login : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
        [WebMethod]
        public string logincheck(string user, string password)
        {
           // linqDataContext db = new linqDataContext();
            int i = login1(user, password);
            //int ii = db.proc_select_isblack(user, 0);
            if (i == 1 )
            {
                return "ok";
            }
            else
            {
                return "no";
            }
        }

        public int login1(string user,string password)
        {
            if (user == "LX2000" && password == "123456")
            {
                return 1;
            }
            else
            {
                return 0;
            }
        }
    }
}

代码中我们可以看到,当用户名是LX2000,密码为123456时,我们认为是运行成功。这里我们在浏览器中检验一下,并记住URL地址:http://localhost:55946/login.asmx
在这里插入图片描述
输入相关值可以调用此方法 这里我就不测试了。
在这里插入图片描述

微信小程序访问Web Service

  1. 回到微信开发者工具,我们进入app.js文件,在globalData中加入一个全局的字符串globalReqUrl:“https://gjxysie.hbpu.edu.cn/webserver”。在里面的地址就是我们刚刚复制的。由于js中每个请求都会用到此部分连接字符串,因此在在这里设置为全局参数方便以后就行更改。关于IP/域名,微信是有一定的限制的,大家先要了解可以阅读微信开发者文档。
    在这里插入图片描述
    2.阅读最新的开发文档,我们发现微信现在不允许我们向本机的IP发起请求,所以现在我们把刚刚写的webservice通过IIS发布在内网环境下。绑定一个内网IP。发布后浏览器测试一下能不能用内网访问。
    在这里插入图片描述
    3.回到微信开发者工具,修改步骤一中的字符串为:http://192.168.31.59/login.asmx,打开login.js,写入以下代码逻辑:
    在这里插入图片描述

(1)开头加入const app = getApp();
(2)在page中的data中初始化参数username和password(如下)
(3)获取输入框中username和password的值(如下)

  data: {
    username: '',
    password: ''
  },
// 获取输入账号 
  usernameInput: function (e) {
    this.setData({
      username: e.detail.value
    })
  },
 
  // 获取输入密码 
  passwordInput: function (e) {
    this.setData({
      password: e.detail.value
    })
  },
  1. 写入登录执行逻辑:首先我们判断输入是否为空,然后若不为空发起wx.request请求,具体语法参考相关文档。设置请求为POST,使用DATA传入数据,注意这里数据名要和Web Service接口中对应方法要获取的参数名一致。获取返回的请求后做出相应其他的操作。这里的JS引用在前面写wxml时已经添加。所以一共加上前面步骤3中的逻辑完整代码为:
// pages/login/login.js
const app = getApp()
 
Page({
  data: {
    username: '',
    password: ''
  },
 
  onShow: function () {
    // 生命周期函数--监听页面显示
    // wx.hideTabBar({})
  },
  onLoad: function () {
   
  },
 
 
  // 获取输入账号 
  usernameInput: function (e) {
    this.setData({
      username: e.detail.value
    })
  },
 
  // 获取输入密码 
  passwordInput: function (e) {
    this.setData({
      password: e.detail.value
    })
  },
 
  // 登录处理
  login: function () {
    var that = this;
    if (this.data.username.length == 0 || this.data.password.length == 0) {
      wx.showToast({
        title: '账号或密码不能为空',
        icon: 'none',
        duration: 2000
      })
    } else {
      wx.request({
        url: app.globalData.globalReqUrl+'/logincheck', //
        method: 'post',
        data: {
          user:  that.data.username,
          password:  that.data.password
        },
      
        success(res) {
          console.log(res.data);
          if (res.data.d == "ok") {
            wx.showToast({
              title: '成功登录',
              icon: 'none',
              duration: 2000
            });
           
          } else{
            wx.showToast({
              title: "密码错误",
              icon: 'none',
              duration: 2000
          })}
        },
        fail(){
          wx.showToast({
            title: '服务器繁忙,请稍后重试',
            icon: 'none',
            duration: 2000
          })

        }
      })
    }
  }
})

测试

由于限制不能访问本机IP,所以这里我们使用微信开发者工具自带的真机调试功能(手机需要和Web service发布的IIS机器在同一内网环境下)。测试结果如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。微信小程序系统教程共有“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]——核心技术”、“微信小程序系统教程[阶段]客服消息+微信支付+九宝电商系统”。“微信小程序系统教程[阶段]全套课程”包含:1.微信小程序系统教程[阶段]_客服消息2.微信小程序系统教程[阶段]_微信支付3.微信小程序系统教程[阶段]_九宝电商系统学习“微信小程序系统教程[阶段]”要求有微信小程序的基础。建议先学习“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]”,后在报名“微信小程序系统教程[阶段]”。阶段讲解的客服消息,是针对小程序的。后台程序用接近底层的技术,没有使用三方技术。这样降低同学们学习成本。微信支付,这部分课程很有难度,要求同学们认真听讲,有不会的技术问题可以请教老师。购买课程后请联系老师,提供单号,给你源程序。九宝电商系统是一套十分适和学习、项目的课程。既可以系统的学习微信小程序相关知识,还可以修改后上线。“微信小程序系统教程[中级阶段]——核心技术”重点讲解微信小程序事件、组件、API微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。购买课程的同学,可赠送就九宝老师编写的《微信小程序开发宝典》。购课请咨询qq2326321088
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LX2000_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值