小程序云函数调用webservice接口


https://www.jianshu.com/p/2692e56251ac

 

小程序最近新出来了云开发能力,主要依赖了node.js(运行在服务器上的js),可以让我们在没有服务器的情况下,使用云开发的数据库,编写云函数(相当于接口)来完成一整套小程序的开发,后端什么的,我们不需要!

以上粗略介绍一下云开发的能力,下面言归正传,关于调用webservice接口(wsdl),小程序在不使用云函数直接用普通开发模式的js通过request也能请求,但这样存在的缺点是:

  • 1.域名必须认证(否则手机只能在调试模式下才能访问接口,这样小程序没法发布)
  • 2.不能请求http开头的

而我们在云函数中调用接口,就能跳过微信对这两点的验证,只要有自己服务器的IP,就能完成开发发布小程序

下面讲操作:

  • 1 新建云函数:代码如下


const cloud = require('wx-server-sdk') const soap = require('soap') cloud.init() const db = cloud.database() // 云函数入口函数 exports.main = async(event, context) => { const urls = '接口地址'; const args = { 'url': event.url, 'usercode': event.usercode, 'pwd': event.pwd, 'os': 'weixin' }; return new Promise((resolve, reject) => { soap.createClient(urls, function(err, client) { if (err) { console.log(err); } //返回一个客户端,并且传参调用Java的接口,接收返回的数据 client.convertURL(args, function(error, result) { //打印接收到的数据 resolve(result) }); }); }) } 

这里需要注意的是:
云函数中使用 wx-server-sdk 需在对应云函数目录下安装 wx-server-sdk 依赖,在创建云函数时会在云函数目录下默认新建一个 package.json 并提示用户是否立即本地安装依赖。请注意云函数的运行环境是 Node.js,因此在本地安装依赖时务必保证已安装 Node.js,同时 node 和 npm 都在环境变量中。如不本地安装依赖,可以用命令行在该目录下运行(云函数目录下):

npm install --save wx-server-sdk@latest

同理,soap依赖

npm install --save soap@latest

  • 2 在js中调用云函数
 wx.cloud.callFunction({ name: 'convertURL', data: {//传给云函数的参数 url: that.data.url, usercode: 'yaya', pwd: '54yaya' }, success: res => { var playurl = res.result.return; playurl = JSON.parse(playurl); console.log(playurl.data.url); that.setData({ playurl: playurl.data.url }) wx.showToast({ title: '地址读取成功,请耐心等待', icon: 'none', duration: 3000 }) }, fail: res => { wx.showToast({ title: '地址错误', icon: 'none', duration: 2000 }) } }) 

ok,大功告成。有用的话点个赞吧





免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM