前言

本教程是基于 “apifm-wxapi” 模块,教你快速实现小程序开发,所以你可能需要先了解以下知识点:

《创建 HelloWorld 项目》
《使用 “apifm-wxapi” 快速开发小程序》
《免费注册开通后台,获得专属域名》

本案例中,部分功能,需要用户登录后才能操作,也就是说需要 token 授权,请先了解:

《微信小程序登录获取openid及三方token》

功能介绍

该功能是优惠券模块的一个补充,支持随机生成一组动态口令(券号 + 密码),然后用户可以使用这些口令来兑换优惠券;

启用优惠券模块

《微信小程序Demo 优惠券展示 / 领取 / 赠送 / 口令优惠券》

生成券号 + 密码

券号 密码兑换优惠券 - 图1

编写小程序

券号 密码兑换优惠券 - 图2

  1. <view class="page">
  2. <view class="page__bd">
  3. <form bindsubmit="bindSave" report-submit="true">
  4. <view class="weui-cells weui-cells_after-title">
  5. <view class="weui-cell ">
  6. <view class="weui-cell__hd">
  7. <view class="weui-label">券号</view>
  8. </view>
  9. <view class="weui-cell__bd">
  10. <input name="number" class="weui-input" placeholder="请输入券号" />
  11. </view>
  12. </view>
  13. <view class="weui-cell ">
  14. <view class="weui-cell__hd">
  15. <view class="weui-label">密码</view>
  16. </view>
  17. <view class="weui-cell__bd">
  18. <input name="pwd" class="weui-input" placeholder="请输入券密码" />
  19. </view>
  20. </view>
  21. </view>
  22. <view class="weui-btn-area">
  23. <button class="weui-btn" type="primary" formType="submit">立即兑换</button>
  24. </view>
  25. </form>
  26. </view>
  27. </view>
  1. const WXAPI = require('apifm-wxapi')
  2. Page({
  3. data: {
  4. },
  5. onLoad: function (options) {
  6. },
  7. onShow: function () {
  8. },
  9. goRegist() {
  10. wx.navigateTo({
  11. url: '/pages/auth/index'
  12. })
  13. },
  14. bindSave(e) {
  15. const loginToken = wx.getStorageSync('loginToken')
  16. if (!loginToken) {
  17. wx.showToast({
  18. title: '请先登录',
  19. icon: 'none'
  20. })
  21. this.goRegist()
  22. return
  23. }
  24. const number = e.detail.value.number;
  25. const pwd = e.detail.value.pwd;
  26. if (!number || !pwd) {
  27. wx.showToast({
  28. title: '信息未填写',
  29. icon: 'none'
  30. })
  31. return
  32. }
  33. WXAPI.exchangeCoupons(loginToken.token, number, pwd).then(res => {
  34. console.log(res)
  35. if (res.code == 0) {
  36. wx.showToast({
  37. title: '兑换成功',
  38. icon: 'success'
  39. })
  40. } else {
  41. wx.showToast({
  42. title: res.msg,
  43. icon: 'none'
  44. })
  45. }
  46. })
  47. },
  48. })

关于 apifm-wxapi 更多的使用方法:

《apifm-wxapi使用说明》

本案例Demo代码下载:

《apifm-wxapi使用Demo程序》

期待你的进步!
感谢!