scf-openapi.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. // 参考文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/database/
  2. Page({
  3. onShareAppMessage() {
  4. return {
  5. title: '云函数中使用微信开放能力',
  6. path: 'page/cloud/pages/scf-openapi/scf-openapi'
  7. }
  8. },
  9. data: {
  10. sendTemplateMessageResult: '',
  11. sendTemplateMessageError: false,
  12. getWXACodeResult: '',
  13. getWXACodeError: false,
  14. sendTemplateMessageLoading: false,
  15. getWXACodeLoading: false,
  16. },
  17. sendTemplateMessageViaCloudFunction(e) {
  18. this.setData({
  19. sendTemplateMessageResult: '',
  20. sendTemplateMessageError: false,
  21. sendTemplateMessageLoading: true,
  22. })
  23. wx.cloud.callFunction({
  24. name: 'openapi',
  25. data: {
  26. action: 'sendTemplateMessage',
  27. formId: e.detail.formId,
  28. },
  29. // eslint-disable-next-line
  30. }).then((res) => {
  31. this.setData({
  32. sendTemplateMessageResult: res,
  33. sendTemplateMessageLoading: false,
  34. })
  35. console.log('[云调用] [发送模板消息] 成功: ', res)
  36. }).catch(err => {
  37. this.setData({
  38. sendTemplateMessageError: true,
  39. sendTemplateMessageLoading: false,
  40. })
  41. console.error('[云调用] [发送模板消息] 失败: ', err)
  42. })
  43. },
  44. getWXACodeViaCloudFunction() {
  45. this.setData({
  46. getWXACodeResult: '',
  47. getWXACodeError: false,
  48. getWXACodeLoading: true,
  49. })
  50. wx.cloud.callFunction({
  51. name: 'openapi',
  52. data: {
  53. action: 'getWXACode'
  54. }
  55. // eslint-disable-next-line
  56. }).then(res => {
  57. this.setData({
  58. getWXACodeResult: res,
  59. getWXACodeLoading: false,
  60. })
  61. console.log('[云调用] [获取小程序码]] 成功: ', res)
  62. }).catch(err => {
  63. this.setData({
  64. getWXACodeError: true,
  65. getWXACodeLoading: false,
  66. })
  67. console.error('[云调用] [获取小程序码] 失败: ', err)
  68. })
  69. },
  70. queryServerDataViaClient() {
  71. const db = wx.cloud.database()
  72. this.setData({
  73. clientLoading: true,
  74. serverDataClient: '',
  75. serverDataClientError: false
  76. })
  77. db.collection('perm4').where({
  78. _openid: 'server'
  79. }).get({
  80. success: res => {
  81. const resFirstData = (res.data && res.data[0]) || {}
  82. this.setData({
  83. serverDataClient: resFirstData.data
  84. })
  85. console.log('[数据库] [查询记录] 成功: ', res)
  86. },
  87. fail: err => {
  88. this.setData({
  89. serverDataClientError: true
  90. })
  91. console.error('[数据库] [查询记录] 失败:', err)
  92. },
  93. complete: () => {
  94. this.setData({
  95. clientLoading: false
  96. })
  97. }
  98. })
  99. },
  100. queryServerDataViaCloudFunction() {
  101. this.setData({
  102. cloudLoading: true,
  103. serverDataCloud: '',
  104. serverDataCloudError: false
  105. })
  106. wx.cloud.callFunction({
  107. name: 'getServerDataDemo',
  108. data: {},
  109. success: res => {
  110. console.log('[云函数] [getServerDataDemo] res: ', res.result)
  111. const resFirstData = (res.result.data && res.result.data[0]) || {}
  112. this.setData({
  113. serverDataCloud: resFirstData.data
  114. })
  115. },
  116. fail: err => {
  117. this.setData({
  118. serverDataCloudError: true
  119. })
  120. console.error('[云函数] [getServerDataDemo] 调用失败', err)
  121. },
  122. complete: () => {
  123. this.setData({
  124. cloudLoading: false
  125. })
  126. }
  127. })
  128. }
  129. })