抖音小程序request封装,登陆授权获取头像方案,及广告加载注意事项

api.js 文件  封装request



var n = function (t, n, r, o, i, a) {
  return i && tt.showLoading({
    title: a || "加载中..."
  }), o || (o = {
    "content-type": "application/json"
  }), new Promise(function (a, s) {
    tt.request({
      url: t,
      data: r,
      method: n,
      header: o,
      success: function (t) {
        console.log(t), i && tt.hideLoading();
        var n = t.data;
        //成功回调函数a,传参n,无论怎么样都会回调一个函数
        200 == n.code ? (n = n.data, a(n)) : n.msg && i && tt.showToast({
          title: n.msg,
          icon: "none",
          duration: 2e3
        });
      },
      fail: function (t) {
        i && (e.hideLoading(), tt.showToast({
          title: "服务器繁忙,请稍后再试~",
          icon: "none",
          duration: 2e3
        })), console.log(t), s(t);
      }
    });
  });
};
exports.apiService = n, exports.userLogin = function (t) {
  return n("https://platform.qwpo2018.com/cgxcr_jrtt/api/user/login", "POST", t, null, 1);
}, exports.gameConfig = function (t) {
  return n("https://platform.qwpo2018.com/cgxcr_jrtt/api/game/config", "POST", t, null, 1);
}, exports.userUpdate = function (t) {
  return n("https://platform.qwpo2018.com/cgxcr_jrtt/api/user/update", "POST", t, null, 1);
}, exports.gameTop = function (t) {
  return n("https://platform.qwpo2018.com/cgxcr_jrtt/api/game/top", "POST", t, null, 1);
}, exports.prizeIndex = function (t) {
  return n("https://platform.qwpo2018.com/cgxcr_jrtt/api/prize/index", "POST", t, null, 1);
}, exports.prizeReceive = function (t) {
  return n("https://platform.qwpo2018.com/cgxcr_jrtt/api/prize/receive", "POST", t, null, 1);
}, exports.gameStart = function (t) {
  return n("https://platform.qwpo2018.com/cgxcr_jrtt/api/game/start
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用uniapp开发的抖音小程序授权获取手机号的完整代码: 1. 在页面中引入抖音小程序授权组件 ```html <template> <view> <phone-auth :visible.sync="isShowPhoneAuth" @success="onPhoneAuthSuccess" @cancel="onPhoneAuthCancel" /> <button @click="showPhoneAuth">授权手机号</button> </view> </template> <script> import PhoneAuth from '@/components/phone-auth' export default { components: { PhoneAuth }, data() { return { isShowPhoneAuth: false } }, methods: { showPhoneAuth() { this.isShowPhoneAuth = true }, onPhoneAuthSuccess(phoneNumber) { console.log('授权手机号成功', phoneNumber) // 处理手机号授权成功后的逻辑 }, onPhoneAuthCancel() { console.log('取消授权') // 处理取消授权的逻辑 } } } </script> ``` 2. 在 `components` 目录下新建 `phone-auth` 组件 ```html <template> <view class="phone-auth" v-if="visible"> <view class="phone-auth__mask"></view> <view class="phone-auth__dialog"> <view class="phone-auth__title">手机号授权</view> <view class="phone-auth__content"> <button class="phone-auth__btn" open-type="getPhoneNumber" @getphonenumber="onGetPhoneNumber"> 授权手机号 </button> <button class="phone-auth__btn phone-auth__btn--cancel" @click="onCancel">取消</button> </view> </view> </view> </template> <script> export default { props: { visible: { type: Boolean, default: false } }, methods: { onGetPhoneNumber(e) { if (e.mp.detail.errMsg === 'getPhoneNumber:ok') { const encryptedData = e.mp.detail.encryptedData const iv = e.mp.detail.iv uni.request({ url: 'https://your-api.com/getPhoneNumber', method: 'POST', data: { encryptedData, iv }, success: res => { if (res.statusCode === 200) { console.log('授权成功', res.data.phoneNumber) this.$emit('success', res.data.phoneNumber) } else { console.error('授权失败', res) } }, fail: err => { console.error('授权失败', err) } }) } else { console.error('授权失败', e) } }, onCancel() { this.$emit('cancel') } } } </script> <style scoped> .phone-auth { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 999; } .phone-auth__mask { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); } .phone-auth__dialog { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80%; max-width: 320rpx; background-color: #fff; border-radius: 8rpx; overflow: hidden; } .phone-auth__title { font-size: 32rpx; color: #333; text-align: center; padding: 32rpx 0; } .phone-auth__content { display: flex; flex-direction: column; align-items: center; justify-content: center; } .phone-auth__btn { width: 100%; height: 96rpx; font-size: 32rpx; color: #fff; background-color: #ff5040; border-radius: 48rpx; margin-bottom: 32rpx; } .phone-auth__btn--cancel { background-color: #999; } </style> ``` 3. 在 `your-api.com/getPhoneNumber` 接口中解密手机号码 ```php <?php // 解密手机号码 function decryptPhone($encryptedData, $iv, $sessionKey) { $aesKey = base64_decode($sessionKey); $aesIV = base64_decode($iv); $aesCipher = base64_decode($encryptedData); $result = openssl_decrypt($aesCipher, 'AES-128-CBC', $aesKey, OPENSSL_RAW_DATA, $aesIV); $data = json_decode($result, true); return $data['phoneNumber']; } // 获取小程序会话密钥 function getSessionKey($appId, $appSecret, $code) { $url = "https://developer.toutiao.com/api/apps/jscode2session?appid={$appId}&secret={$appSecret}&code={$code}"; $result = file_get_contents($url); $data = json_decode($result, true); return $data['session_key']; } // 获取加密数据和向量 $encryptedData = $_POST['encryptedData']; $iv = $_POST['iv']; // 获取小程序会话密钥 $appId = 'your_app_id'; $appSecret = 'your_app_secret'; $code = $_POST['code']; $sessionKey = getSessionKey($appId, $appSecret, $code); // 解密手机号码 $phoneNumber = decryptPhone($encryptedData, $iv, $sessionKey); // 返回解密后的手机号码 header('Content-Type: application/json'); echo json_encode([ 'phoneNumber' => $phoneNumber ]); ``` 注意,上述代码中的 `$appId` 和 `$appSecret` 分别是您在今日头条开发平台创建小程序应用后所分配的应用ID和应用密钥。您还需要将该文件上传到您的Web服务器上,并将接口地址替换为您实际上线的地址。 以上就是使用uniapp开发抖音小程序授权获取手机号的完整代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值