支付寶小程序serverless---獲取用戶信息(頭像)並保存到雲數據庫


支付寶小程序serverless---獲取用戶信息(頭像)並保存到雲數據庫

博客說明

文章所涉及的資料來自互聯網整理和個人總結,意在於個人學習和經驗匯總,如有什么地方侵權,請聯系本人刪除,謝謝!

我又回來了,這是我第三次修改啦。

使用serverless

首先我們需要在app.js里面引入serverless
在這里插入圖片描述
然后再在我們的邏輯代碼里面調用登錄的接口

獲取用戶授權

先獲取用戶授權的接口

這個是支付寶文檔的地址:https://opendocs.alipay.com/mini/api/openapi-authorize

// 先獲取用戶授權(如用戶未授權會彈窗喚起授權窗口)
const res = await app.serverless.user.authorize({
  authProvider: 'alipay_openapi'
}).catch(console.error);
if (res && res.success) {
  console.log('授權成功');
  const userInfo = await app.serverless.user.getInfo({
    authProvider: 'alipay_openapi',
  }).catch(console.error);
  if (userInfo.success) {
    console.log('getUserInfo res', userInfo);
    app.user = userInfo.result.user;
    this.setData({ user: userInfo.result.user });
  }

調用獲取頭像接口

獲取用戶頭像的接口

地址:https://opendocs.alipay.com/mini/api/ch8chh

在這里插入圖片描述

my.getAuthUserInfo已經不能使用了,那么我們就用my.getOpenUserInfo,但是my.getOpenUserInfo是有要求的,它需要用戶主動觸發,而不是直接調用api來詢問。

按鈕

<button a:if="{{canIUseAuthButton}}" open-type="getAuthorize"  onGetAuthorize="onGetAuthorize" onError="onAuthError"  scope='userInfo'>    會員基礎信息授權 </button>

js代碼

這個是真的很多坑,特別是兩層response,要使用的話,下面是解決了坑之后的

/**
   * 授權成功事件
   */
  onGetAuthorize() {
    var that = this;
    my.getOpenUserInfo({
      fail: (res) => {
        this.setData({ result: JSON.parse(res.response).response});
      },
      success: (res) => {
        this.setData({ result: JSON.parse(res.response).response});
        console.log(that.data.result);
      }
    });
  },

保存我們的用戶信息(雲函數)

module.exports = async (ctx) => {
  const User = await ctx.mpserverless.db.collection('user').insertOne({
        userinfo:ctx.args.data
    })
    .then(res => {
      return res;
    })
    .catch(console.error);
  return { User };
};

測試結果

開發者工具控制台

在這里插入圖片描述

雲數據庫

在這里插入圖片描述

這樣的話我們的數據就插入成功啦!

感謝

支付寶

以及勤勞的自己


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM