小程序雲函數調用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