支付寶小程序API 網(wǎng)絡(luò)

2018-11-27 20:20 更新

支付寶小程序API 網(wǎng)絡(luò)

my.httpRequest

向指定服務(wù)器發(fā)起一個跨域 http 請求。

名稱 類型 必填 描述 url String 是 目標服務(wù)器url headers Object 否 設(shè)置請求的 HTTP 頭,默認 {'Content-Type': 'application/x-www-form-urlencoded'} method String 否 默認GET,目前支持GET,POST data String 否 請求參數(shù) timeout Number 否 超時時間,單位ms,默認30000 dataType String 否 期望返回的數(shù)據(jù)格式,默認json,支持json,text,base64 success Function 否 調(diào)用成功的回調(diào)函數(shù) fail Function 否 調(diào)用失敗的回調(diào)函數(shù) complete Function 否 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

success 返回值

名稱 類型 描述
data String 響應(yīng)數(shù)據(jù),格式取決于請求時的 dataType 參數(shù)
status Number 響應(yīng)碼
headers Object 響應(yīng)頭

錯誤碼

error 描述
11 無權(quán)跨域
12 網(wǎng)絡(luò)出錯
13 超時
14 解碼失敗
19 HTTP錯誤

代碼示例

my.httpRequest({
  url: 'http://httpbin.org/post',
  method: 'POST',
  data: {
    from: '支付寶',
    production: 'AlipayJSAPI',
  },
  dataType: 'json',
  success: function(res) {
    my.alert({content: 'success'});
  },
  fail: function(res) {
    my.alert({content: 'fail'});
  },
  complete: function(res) {
    my.hideLoading();
    my.alert({content: 'complete'});
  }
});

注意:如果 httpRequest 調(diào)用返回「無權(quán)調(diào)用該接口」時,則需要在開放平臺的 httpRequest 中添加你需要訪問的域名地址

my.uploadFile

上傳本地資源到開發(fā)者服務(wù)器。

入?yún)?/a>

名稱 類型 必填 描述
url String 開發(fā)者服務(wù)器地址
filePath String 要上傳文件資源的本地定位符
fileName String 文件名,即對應(yīng)的 key, 開發(fā)者在服務(wù)器端通過這個 key 可以獲取到文件二進制內(nèi)容
fileType String 文件類型,image/video
header Object HTTP 請求 Header
formData Object HTTP 請求中其他額外的 form 數(shù)據(jù)
success Function 調(diào)用成功的回調(diào)函數(shù)
fail Function 調(diào)用失敗的回調(diào)函數(shù)
complete Function 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

success 返回值

名稱 類型 描述
data String 服務(wù)器返回的數(shù)據(jù)
statusCode String HTTP 狀態(tài)碼
header Object 服務(wù)器返回的 header

錯誤碼

error 描述
11 文件不存在
12 上傳文件失敗
13 沒有權(quán)限

代碼示例

my.uploadFile({
  url: '請使用自己服務(wù)器地址',
  fileType: 'image',
  fileName: 'file',
  filePath: '...',
  success: (res) => {
    my.alert({
      content: '上傳成功'
    });
  },
});

my.downloadFile

下載文件資源到本地。

入?yún)?/a>

名稱 類型 必填 描述
url String 下載文件地址
header Object HTTP 請求 Header
success Function 調(diào)用成功的回調(diào)函數(shù)
fail Function 調(diào)用失敗的回調(diào)函數(shù)
complete Function 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

success 返回值

名稱 類型 描述
apFilePath String 文件臨時存放的位置

錯誤碼

error 描述
12 下載失敗
13 沒有權(quán)限

代碼示例

my.downloadFile({
      url: 'http://img.alicdn.com/tfs/TB1x669SXXXXXbdaFXXXXXXXXXX-520-280.jpg',
      success({ apFilePath }) {
        abridge.previewImage({
          urls: [apFilePath],
        });
      },
      fail(res) {
        abridge.alert({
          content: res.errorMessage || res.error,
        });
      },
    });

my.connectSocket

創(chuàng)建一個 WebSocket 的連接;一個支付寶小程序同時只能保留一個 WebSocket 連接,如果當前已存在 WebSocket 連接,會自動關(guān)閉該連接,并重新創(chuàng)建一個新的 WebSocket 連接。

入?yún)?/a>

名稱 類型 必填 描述
url String 目標服務(wù)器url
data Object 請求的參數(shù)
headers Object 設(shè)置請求的頭部
success Function 調(diào)用成功的回調(diào)函數(shù)
fail Function 調(diào)用失敗的回調(diào)函數(shù)
complete Function 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

錯誤碼

error 描述
1 未知錯誤
2 網(wǎng)絡(luò)連接已經(jīng)存在
3 URL參數(shù)為空
4 無法識別的URL格式
5 URL必須以ws或者wss開頭
6 連接服務(wù)器超時
7 服務(wù)器返回的https證書無效
8 服務(wù)端返回協(xié)議頭無效
9 WebSocket請求沒有指定Sec-WebSocket-Protocol請求頭
10 網(wǎng)絡(luò)連接沒有打開,無法發(fā)送消息
11 消息發(fā)送失敗
12 無法申請更多內(nèi)存來讀取網(wǎng)絡(luò)數(shù)據(jù)

示例代碼

my.connectSocket({
  url: 'test.php',
  data: {},
  header:{
    'content-type': 'application/json'
  },
  method:"GET",
});

my.onSocketOpen

監(jiān)聽WebSocket連接打開事件。

示例代碼

my.connectSocket({
  url: 'test.php',
});


my.onSocketOpen(function(res) {
  console.log('WebSocket 連接已打開!');
});

my.onSocketError

監(jiān)聽WebSocket錯誤。

示例代碼

my.connectSocket({
  url: '開發(fā)者的服務(wù)器地址'
});


my.onSocketOpen(function(res){
  console.log('WebSocket 連接已打開!');
});


my.onSocketError(function(res){
  console.log('WebSocket 連接打開失敗,請檢查!');
});

my.sendSocketMessage

通過 WebSocket 連接發(fā)送數(shù)據(jù),需要先使用 my.connectSocket 發(fā)起建連,并在 my.onSocketOpen 回調(diào)之后再發(fā)送數(shù)據(jù)。

入?yún)?/a>

名稱 類型 必填 描述
data String/ArrayBuffer 需要發(fā)送的內(nèi)容
success Function 回調(diào)函數(shù)
fail Function 調(diào)用失敗的回調(diào)函數(shù)
complete Function 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

示例代碼

my.sendSocketMessage({
    data: this.data.toSendMessage, // 需要發(fā)送的內(nèi)容
    success: (res) => {
        my.alert({content: '數(shù)據(jù)發(fā)送!' + this.data.toSendMessage});
    },
});

my.onSocketMessage

監(jiān)聽WebSocket接受到服務(wù)器的消息事件。

回調(diào)返回值

名稱 類型
描述 data
String/ArrayBuffer 服務(wù)器返回的消息

示例代碼

my.connectSocket({
  url: '服務(wù)器地址'
})


my.onSocketMessage(function(res) {
  console.log('收到服務(wù)器內(nèi)容:' + res.data)
})

my.closeSocket

入?yún)?/h3>
名稱 類型 必填 描述
success Function 回調(diào)函數(shù)
fail Function 調(diào)用失敗的回調(diào)函數(shù)
complete Function 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

代碼示例

關(guān)閉WebSocket連接。

my.onSocketOpen(function() {
  my.closeSocket()
})


my.onSocketClose(function(res) {
  console.log('WebSocket 已關(guān)閉!')
})

my.onSocketClose

代碼示例

監(jiān)聽WebSocket關(guān)閉。

onLoad() {
    // 注意: 回調(diào)方法的注冊在整個小程序啟動階段只要做一次,調(diào)多次會有多次回調(diào)
    my.onSocketClose((res) => {
      my.alert({content: '連接已關(guān)閉!'});
      this.setData({
        sendMessageAbility: false,
        closeLinkAbility: false,
      });
    });
    // 注意: 回調(diào)方法的注冊在整個小程序啟動階段只要做一次,調(diào)多次會有多次回調(diào)
    my.onSocketOpen((res) => {
      my.alert({content: '連接已打開!'});
      this.setData({
        sendMessageAbility: true,
        closeLinkAbility: true,
      });
    });


    my.onSocketError(function(res){
      my.alert('WebSocket 連接打開失敗,請檢查!' + res);
    });


    // 注意: 回調(diào)方法的注冊在整個小程序啟動階段只要做一次,調(diào)多次會有多次回調(diào)
    my.onSocketMessage((res) => {
      my.alert({content: '收到數(shù)據(jù)!' + JSON.stringify(res)});
    });
  }


connect_start() {
    my.connectSocket({
      url: '服務(wù)器地址', // 開發(fā)者服務(wù)器接口地址,必須是 wss 協(xié)議,且域名必須是后臺配置的合法域名
      success: (res) => {
        my.showToast({
          content: 'success', // 文字內(nèi)容
        });
      },
      fail:()=>{
        my.showToast({
          content: 'fail', // 文字內(nèi)容
        });
      }
    });
  },

  • 注意:所有 on 開頭的監(jiān)聽事件函數(shù),建議放到 Page 頁面的 onLoad() 函數(shù)中執(zhí)行,否則容易造成多次監(jiān)聽同一個重復(fù)事件。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號