用雲開發內容管理 CMS,幾步實現一個簡易商城


近期,小程序雲開發已正式支持 CMS 內容管理系統(點此回顧),下面就以簡易商城項目為例,幫助開發者更好地了解和應用此項能力。

資源准備

進行商城搭建前,你需要了解:

技術棧

  • 雲開發 CloudBase:雲原生一體化應用開發平台
  • Taro:一套遵循 React 語法規范的 多端開發 解決方案

開發工具

建議提前安裝好

需求分析

簡易商城功能包括:

  • 商品列表與下單:展示商品信息,創建訂單
  • 訂單列表:展示訂單列表

多端支持 - 跨平台

  • 小程序
  • Web

配置流程

1. 在微信開發者工具中開通雲開發,並選擇按量付費

如果你的環境是預付費,請到設置中,將支付方式轉換為按量付費。

2. 安裝 CMS 系統

(1)在更新到最新的 微信開發工具 Nightly 版本中,點擊雲開發控制台,在頂部 Tab 欄中,點擊「更多」-「內容管理」。

(2)點擊開通,勾選同意協議后,點擊確定。

(3)開通內容管理需要填寫管理員賬號,填寫賬號后,點擊「確定」完成。

(4)開通拓展需要一定時間,請耐心等待。

(5)完成后,點擊「更多」-「內容管理」,即可看到內容管理的入口和相關信息。點擊訪問地址,即可在彈出的窗口中進行內容管理的相關配置。

3. 登錄 CMS 系統,創建資源

CloudBase CMS 已經部署在當前環境下的靜態網站托管中,訪問地址的格式如下:雲開發靜態托管默認域名/部署路徑,例如:

https://envid.ap-shanghai.app.tcloudbase.com/tcb-cms/(結尾有 / 符號)。默認域名可以訪問控制台查看。

打開 CloudBase CMS 后,你需要先登錄,賬號密碼為安裝時設置的管理員賬號和密碼。

在開始管理內容數據前,我們需要先創建一個項目。CloudBase CMS 使用項目划分不同類的內容,便於區分內容數據用途,進行權限管理。

首先,我們需要點擊新建項目下方的創建新項目按鈕,創建一個名為小商店,Id 為 shop 的項目。

創建完項目后,點擊項目卡片,進入項目的管理頁面,我們會看到項目的歡迎頁面。

創建商品類型,管理商品信息:

創建一個名稱為商品的內容模型,數據庫名為 goods,即將商品數據存儲到 goods 數據集合中。如果新建內容的時候指定的集合不存在,CloudBase CMS 會自動新建集合。

在創建完內容模型后,我們會得到一個空的內容模型。

接下來,需要為商品添加商品名稱,商品圖片,價格,庫存數量等字段。

為商品添加商品名稱屬性時,由於商品名稱通常是比較短的文字,所以可以選擇單行字符串字段,點擊右側的單行字符串卡片,填寫商品名稱的字段信息。

除了基本的名稱、數據庫字段名之外,還可以為此字段添加其他的限制,如限制填寫商品名稱時的最大長度、創建商品時是否必需填寫等。

類似的,我們可以創建數字類型的價格字段以及庫存數量,圖片類型的商品圖片字段。在創建圖片字段時,考慮到商品的圖片可能有多張,我們可以打開“允許多個內容”按鈕,表明可以上傳多張圖片。

創建的 goods 數據庫集合的結構如下:

同上,類似的創建一個名稱為訂單列表,數據庫集合名為 order 的內容模型,來管理訂單信息。創建的 order 數據庫集合的結構如下:

添加一個商品:

創建項目

1、拉取模板

# 安裝 taro cli 工具

npm install -g @tarojs/cli@2.2.7

# 拉取模板

git clone https://github.com/TencentCloudBase/cloudbase-minishop.git

使用微信開發者工具導入項目,進入 client 目錄,安裝依賴:

npm i

項目目錄 cloud/functions 包含寫好的微信支付的兩個雲函數, pay 和接收支付消息推送的 pay-callback 雲函數。使用時需使用微信開發者工具上傳這兩個雲函數。

2、項目目錄

.
├── client // 小程序源碼
│   ├── config
│   └── src
│       ├── assets
│       ├── components
│       └── pages
│           ├── index
│           └── order-list
└── cloud // 雲開發相關源碼
│   └── functions
│       ├── pay
│       └── pay-callback
├── cloudbaserc.json // 雲開發配置
├── project.config.json // 小程序配置

調用微信支付實現下單

完成項目創建后,借助雲開發調用微信支付能力,來實現商城的下單流程。

  • 小程序調用雲函數,在雲函數中調用統一下單接口,參數中帶上接收異步支付結果的雲函數名和其所在雲環境 Id
const cloud = require("wx-server-sdk");

const res = await cloud.cloudPay.unifiedOrder({

envId: '',

subMchId: '',

body: "商品名",

totalFee: 100,

outTradeNo: '訂單號',

spbillCreateIp: "127.0.0.1",

functionName: "pay-callback"

});

// 返回 res.payment

支付結果回調的雲函數必須返回如下一個對象,否則會視為回調不成功,雲函數會收到重復的支付回調。

{

errcode: '',

errmsg: '',

}
  • 統一下單接口返回的成功結果對象中有 payment 字段,該字段即是小程序端發起支付的接口 wx.requestPayment 所需的所有信息
  • 小程序端拿到雲函數結果,調用 wx.requestPayemnt 發起支付
wx.requestPayment({

...payment,

success (res) { },

fail (res) { }tt

})https://docs.cloudbase.net/
  • 支付完成后,在統一下單接口中配置的雲函數將收到支付結果通知。

產品介紹

雲開發(Tencent CloudBase,TCB)是騰訊雲提供的雲原生一體化開發環境和工具平台,為開發者提供高可用、自動彈性擴縮的后端雲服務,包含計算、存儲、托管等serverless化能力,可用於雲端一體化開發多種端應用(小程序,公眾號,Web 應用,Flutter 客戶端等),幫助開發者統一構建和管理后端服務和雲資源,避免了應用開發過程中繁瑣的服務器搭建及運維,開發者可以專注於業務邏輯的實現,開發門檻更低,效率更高。


免責聲明!

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



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