前言
本教程是基于 “apifm-wxapi” 模块,教你快速实现小程序开发,所以你可能需要先了解以下知识点:
本案例中,部分功能,需要用户登录后才能操作,也就是说需要 token 授权,请先了解:
功能介绍
激励用户每天登录小程序,完成每日签到任务获得积分奖励;
积分可用于兑换积分专享优惠券、积分抵扣购物等等场景;
后天设置每天签到赠送积分数量、连续签到 x 天可获得 y 积分奖励;
启用模块
登录 “第一步” 注册的后台,左侧菜单 --> 工厂设置 --> 模块管理
找到并启用下述模块,然后 F5 刷新一下后台界面,你将可以看到本案例所需的所有功能菜单:
本案例菜单为 “积分模块” --> “签到规则”
积分模块
设置签到规则
编写小程序
1<view class="page"> 2 <view class="page__bd"> 3 <view class="weui-panel"> 4 <view class="weui-panel__hd"> 签到规则: </view> 5 <view class="weui-panel__bd"> 6 <view wx:for="{{ scoreSignRules }}" wx:key="*this" class="weui-media-box weui-media-box_text"> 7 <view class="weui-media-box__title weui-media-box__title_in-text"> 8 连续签到 {{ item.continuous }} 天,赠送 {{ item.score }} 积分 9 </view> 10 </view> 11 </view> 12 </view> 13 <button wx:if="{{todaySigned}}" class="addAddress" type="default" disabled>今日已签到,明天再来</button> 14 <button wx:else class="addAddress" type="primary" bindtap="scoreSign">点击签到</button> 15 <view class="weui-panel"> 16 <view class="weui-panel__hd"> 签到记录: </view> 17 <view class="weui-panel__bd"> 18 <view wx:for="{{ scoreSignLogs }}" wx:key="*this" class="weui-media-box weui-media-box_text"> 19 <view class="weui-media-box__title weui-media-box__title_in-text"> 20 连续签到第 {{ item.continuous }} 天 21 </view> 22 <view class="weui-media-box__desc"> 23 {{ item.dateAdd }} 24 </view> 25 </view> 26 </view> 27 </view> 28 </view> 29</view>
1const WXAPI = require('apifm-wxapi') 2 3Page({ 4 data: { 5 scoreSignRules: undefined, // 签到赠送积分规则 6 scoreSignLogs: undefined, // 签到记录 7 todaySigned: true, // 今天是否已签到 8 }, 9 onLoad: function (options) { 10 11 }, 12 onShow: function () { 13 this.scoreSignRules() 14 const loginToken = wx.getStorageSync('loginToken') 15 if (!loginToken) { 16 wx.showToast({ 17 title: '请先登录', 18 icon: 'none' 19 }) 20 this.goRegist() 21 return 22 } 23 this.scoreTodaySignedInfo() 24 this.scoreSignLogs() 25 }, 26 goRegist() { 27 wx.navigateTo({ 28 url: '/pages/auth/index' 29 }) 30 }, 31 scoreSignRules(){ // 读取签到赠送积分规则 32 WXAPI.scoreSignRules().then(res => { 33 if (res.code == 0) { 34 this.setData({ 35 scoreSignRules: res.data 36 }) 37 } 38 }) 39 }, 40 scoreSignLogs(){ // 读取签到记录 41 const loginToken = wx.getStorageSync('loginToken') 42 WXAPI.scoreSignLogs({ 43 token: loginToken.token 44 }).then(res => { 45 if (res.code == 0) { 46 this.setData({ 47 scoreSignLogs: res.data.result 48 }) 49 } 50 }) 51 }, 52 scoreTodaySignedInfo(){ // 判断今日是否已签到 53 const loginToken = wx.getStorageSync('loginToken') 54 WXAPI.scoreTodaySignedInfo(loginToken.token).then(res => { 55 if (res.code == 700) { 56 this.setData({ 57 todaySigned: false 58 }) 59 } 60 }) 61 }, 62 scoreSign(){ // 签到 63 const loginToken = wx.getStorageSync('loginToken') 64 WXAPI.scoreSign(loginToken.token).then(res => { 65 if (res.code == 0) { 66 wx.showToast({ 67 title: '签到成功', 68 icon: 'success' 69 }) 70 this.setData({ 71 todaySigned: true 72 }) 73 this.onShow() 74 } else { 75 wx.showToast({ 76 title: res.msg, 77 icon: 'none' 78 }) 79 } 80 }) 81 }, 82})
apifm-wxapi 方法说明
签到规则
1WXAPI.scoreSignRules()
读取签到一次送多少积分;连续签到x天赠送y积分
签到
1WXAPI.scoreSign(token)
读取今日签到信息
1WXAPI.scoreTodaySignedInfo(token)
判断今天有没有签到
错误码返回 700 表示未签到;错误码返回 0 表示已经签到
签到记录
1WXAPI.scoreSignLogs(Object object)
读取历史签到记录
分页展示,具体参数详见接口文档说明
关于更加详细的参数使用,以及更加高级的进阶使用方法,可以参考api接口文档说明:
关于 apifm-wxapi 更多的使用方法:
本案例Demo代码下载:
期待你的进步!
感谢!