2020年最新最全小程序支付功能實(shí)現(xiàn),借助小程序云開(kāi)發(fā)實(shí)現(xiàn)小程序支付功能
第一節(jié)~企業(yè)微信小程序的注冊(cè)圖文詳解
石頭哥的公司終于注冊(cè)下來(lái)了,所以接下來(lái),石頭哥也可以愉快的注冊(cè)一個(gè)企業(yè)微信小程序了,主要是想實(shí)現(xiàn)微信支付功能,獲取用戶(hù)手機(jī)號(hào)功能,這些都需要企業(yè)小程序。所以今天就來(lái)注冊(cè)一把企業(yè)小程序。順便把這個(gè)過(guò)程通過(guò)這篇文章記錄下來(lái),后面注冊(cè)微信支付商戶(hù)號(hào),還有實(shí)現(xiàn)小程序支付功能的時(shí)候,都會(huì)寫(xiě)對(duì)應(yīng)的文章出來(lái)。
注冊(cè)企業(yè)小程序必備
1,一個(gè)全新的郵箱,沒(méi)有注冊(cè)過(guò)小程序,沒(méi)有注冊(cè)過(guò)公眾號(hào)的郵箱
2,企業(yè)或者個(gè)體工商戶(hù)的營(yíng)業(yè)執(zhí)照
1,郵箱注冊(cè)界面
首先,在注冊(cè)界面選擇小程序

如果你的郵箱被占用過(guò),那么就會(huì)出現(xiàn)下面的錯(cuò)誤

如果郵箱沒(méi)用過(guò),就會(huì)進(jìn)入下面頁(yè)面,這個(gè)頁(yè)面用來(lái)驗(yàn)證郵箱

2,企業(yè)注冊(cè)界面
上面的郵箱驗(yàn)證成功以后,我們這里就要選企業(yè)了,當(dāng)然如果你是個(gè)體工商戶(hù),你也可以選擇個(gè)體工商戶(hù)。

這里的信息如實(shí)填寫(xiě)即可

信息填寫(xiě)完畢,提交時(shí)會(huì)有如下一個(gè)確認(rèn)框

這樣我們企業(yè)小程序就注冊(cè)好了,可以看到企業(yè)小程序后臺(tái)有微信支付選項(xiàng)的,個(gè)人小程序是沒(méi)有這一選項(xiàng)的。

3,登錄小程序后臺(tái),做微信支付關(guān)聯(lián)
我們這個(gè)時(shí)候如果想直接做微信支付商戶(hù)號(hào)關(guān)聯(lián),會(huì)提示如下錯(cuò)誤。

也就是說(shuō)我們必須先經(jīng)過(guò)微信認(rèn)證后,才可以關(guān)聯(lián)微信支付。所謂的微信認(rèn)證,也就是每年給微信交300元認(rèn)證費(fèi)。
4,微信認(rèn)證
點(diǎn)擊這里的認(rèn)證

仔細(xì)一看,微信認(rèn)證要填的信息還是比較多的

填寫(xiě)發(fā)票信息,也就是你花300元給微信,微信給你開(kāi)個(gè)發(fā)票。

然后就是付300元給微信了。

支付完就等著微信審核吧,只有認(rèn)證審核后,才可以做別的操作

耐心等待吧,認(rèn)證完,我就可以關(guān)聯(lián)微信支付商戶(hù)號(hào)了,就可以愉快的做支付功能了。我們下一節(jié)見(jiàn)。
我是晚上提交的認(rèn)證,第二天也就是周三工作日的上午,認(rèn)證機(jī)構(gòu)給我打電話(huà)了,是個(gè)小姐姐,聲音很好聽(tīng),確認(rèn)些信息,再問(wèn)我下對(duì)公賬號(hào)收到了一筆2分錢(qián)內(nèi)的數(shù)字,做下驗(yàn)證,就審核通過(guò)了。

第二節(jié)~注冊(cè)微信支付商戶(hù)號(hào)
我們上一節(jié)已經(jīng)注冊(cè)了企業(yè)小程序,這一節(jié)我們就來(lái)注冊(cè)微信支付商戶(hù)號(hào),這種實(shí)現(xiàn)微信支付的必須一步,因?yàn)闆](méi)有微信支付商戶(hù)號(hào),就好比你沒(méi)有銀行卡一樣,怎么收錢(qián)呢。
寫(xiě)在前面
微信商戶(hù)號(hào)申請(qǐng)還是比較麻煩的,不僅要填寫(xiě)很多信息,還有最麻煩的一步就是經(jīng)營(yíng)場(chǎng)所的實(shí)景圖驗(yàn)證,這一步很麻煩,我也是修改了好多次,才通過(guò)驗(yàn)證的。
一,注冊(cè)微信支付商戶(hù)號(hào)
1,接入微信支付 其實(shí)微信官方有對(duì)應(yīng)的注冊(cè)文檔。https://kf.qq.com/product/wechatpaymentmerchant.html#hid=2449

申請(qǐng)地址:https://pay.weixin.qq.com/index.php/apply/applyment_home/guide_normal這個(gè)地址可能會(huì)變動(dòng),如果變動(dòng)的話(huà),大家就去上面的這個(gè)官方文檔里跟著一步步來(lái)。

然后跟著步驟一步步的如實(shí)填寫(xiě)即可。

然后就是填寫(xiě)信息頁(yè)

二,注冊(cè)時(shí)的注意事項(xiàng)
下面我會(huì)把注冊(cè)過(guò)程中的一些注意事項(xiàng)給大家說(shuō)下。我這里用的是微信支付服務(wù)商關(guān)聯(lián)注冊(cè)(至于為什么這么做,這里不便透漏,只給大家說(shuō)下,用服務(wù)商注冊(cè)可以降低微信支付的手續(xù)費(fèi)),大家注冊(cè)微信商戶(hù)時(shí),可以找石頭哥,石頭哥現(xiàn)在也會(huì)微信支付的服務(wù)商啦。。。

接下來(lái)就要漫長(zhǎng)的資料填寫(xiě)過(guò)程了。

這一點(diǎn)是最麻煩的,所以會(huì)重點(diǎn)講下。 如果你有線(xiàn)下實(shí)體店,需要把下面要求的照片拍下,然后上傳

如果你有認(rèn)證過(guò)的微信服務(wù)號(hào)

如果你有已經(jīng)上線(xiàn)的小程序或者有自己的小程序設(shè)計(jì)圖,可以用下面的這個(gè),不過(guò)小程序申請(qǐng)微信支付通常比較麻煩些,最簡(jiǎn)單的是線(xiàn)下門(mén)店和公眾號(hào)。

用app來(lái)申請(qǐng),需要下面這些。

有網(wǎng)站的話(huà),可以用下面這些。

企業(yè)微信也可以注冊(cè)微信支付。

結(jié)算規(guī)則這里盡量選擇費(fèi)率低的,符合自己業(yè)務(wù)場(chǎng)景的。

資料提交也是比較慢的,耐心等待就行。

然后還需要一步驗(yàn)證。

驗(yàn)證完成以后,就等待審核就可以了。

提交完成以后,耐心等待審核就行。如果有審核不通過(guò)的情況,根據(jù)實(shí)際情況修改就行。這里審核通過(guò)以后,我們才可以進(jìn)行接下來(lái)小程序綁定支微信支付的操作,如果多次提交審核不通過(guò),可以找石頭哥來(lái)幫忙。
下圖是我第二天審核通過(guò)以后的截圖

審核通過(guò)以后,還需要進(jìn)行協(xié)議簽署


協(xié)議簽署完以后,我們的微信支付商戶(hù)號(hào)就正式申請(qǐng)下來(lái)了。
第三節(jié)~借助云開(kāi)發(fā)10行代碼實(shí)現(xiàn)小程序支付功能
接上篇,上一篇我們已經(jīng)注冊(cè)完企業(yè)小程序,并成功的完成了微信認(rèn)證。這一節(jié)我們就來(lái)開(kāi)始正式的關(guān)聯(lián)微信支付了,給我們的小程序接入支付功能。 傳送門(mén):《企業(yè)微信小程序的注冊(cè)圖文詳解》
必備條件
1,必須注冊(cè)微信支付的商戶(hù)號(hào)
2,企業(yè)小程序必須通過(guò)認(rèn)證
3,小程序關(guān)聯(lián)微信支付商戶(hù)號(hào)
一,小程序關(guān)聯(lián)微信商戶(hù)
1,登錄小程序后臺(tái),點(diǎn)擊關(guān)聯(lián)更多商戶(hù)號(hào)

2,關(guān)聯(lián)商戶(hù)號(hào)需要用到appid,點(diǎn)擊如下所示的關(guān)聯(lián)更多AppID

把我們小程序的appid復(fù)制下

然后去授權(quán)關(guān)聯(lián)我們的微信支付商戶(hù)號(hào)

微信商戶(hù)號(hào)申請(qǐng)下來(lái)以后,就可以直接微信掃碼登錄了,然后就可以在商戶(hù)號(hào)里關(guān)聯(lián)小程序了。

商戶(hù)號(hào)里關(guān)聯(lián)好,我們需要去小程序里確認(rèn)下授權(quán)。

授權(quán)完成以后,我們的小程序端會(huì)出現(xiàn)下面這樣的,點(diǎn)擊下確認(rèn)即可。

點(diǎn)擊下上圖的確認(rèn),然后再點(diǎn)擊下圖所示的授權(quán)。

可以看到我們的小程序和微信商戶(hù)號(hào)成功的關(guān)聯(lián)起來(lái)了

到這里我們小程序和商戶(hù)號(hào)的關(guān)聯(lián)操作就完成了。
二,開(kāi)通云開(kāi)發(fā)并綁定微信商戶(hù)號(hào)
1,然后新建小程序,開(kāi)始代碼部分。 這里的appid一定要是你關(guān)聯(lián)過(guò)微信支付商戶(hù)的,并且還得是企業(yè)小程序。這里創(chuàng)建項(xiàng)目時(shí)記得選擇不使用云服務(wù),因?yàn)槭褂媚J(rèn)云開(kāi)發(fā)的話(huà),會(huì)創(chuàng)建一大堆無(wú)用的文件。

2,開(kāi)通云開(kāi)發(fā)功能

會(huì)彈出協(xié)議,直接點(diǎn)確定就可以了

3,給你的云開(kāi)發(fā)環(huán)境起個(gè)名,英文或者拼音

現(xiàn)在云開(kāi)發(fā)只可以免費(fèi)試用一個(gè)月,學(xué)習(xí)的話(huà),一個(gè)月夠了,所以這里支付方式,隨便選一個(gè)就行了。下一步的選擇配額,也隨便選一個(gè)就行了,然后提交。

等待創(chuàng)建云開(kāi)發(fā),創(chuàng)建好以后如下。

4,然后點(diǎn)擊設(shè)置,全局配置,可以看到有個(gè)微信支付配置

有的同學(xué)這里看不到微信支付配置,是因?yàn)槟愕男〕绦蜷_(kāi)發(fā)工具版本過(guò)低。最好下載最新版本的開(kāi)發(fā)者工具。 5,云開(kāi)發(fā)配置微信商戶(hù)號(hào)。

添加完以后還需要手機(jī)上進(jìn)行授權(quán)確認(rèn)

6,手機(jī)微信上進(jìn)行確認(rèn)


可以看到這里已經(jīng)授權(quán)綁定了

退款的我們后面會(huì)再講。 這個(gè)時(shí)候我們準(zhǔn)備工作就全部做好了,接下來(lái)就要愉快的寫(xiě)代碼。
三,云開(kāi)發(fā)支付代碼的編寫(xiě)
1,看官方文檔,其實(shí)說(shuō)的很詳細(xì)了,接下來(lái)我?guī)Т蠹疫^(guò)一遍。

這里也把官方鏈接貼出來(lái)給大家。 https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/open/pay/CloudPay.unifiedOrder.html 其實(shí)官方有給我們完整的示例。

我們只需要把這段代碼復(fù)制到我們自己的云函數(shù)里就行了。
2,創(chuàng)建云開(kāi)發(fā)統(tǒng)一支付的云函數(shù)
我們首先要?jiǎng)?chuàng)建云函數(shù)的根目錄

然后新建云函數(shù)pay0610

然后把官方示例直接復(fù)制到我們自己的云函數(shù)里

3,把云函數(shù)里的信息替換成我們自己的

上面標(biāo)注重要的是一定要替換成自己的。然后保存修改,部署云函數(shù)

4,編寫(xiě)頁(yè)面
在index.wxml里寫(xiě)一個(gè)按鈕,點(diǎn)擊的時(shí)候調(diào)起我們的支付云函數(shù)

然后在index.js里編寫(xiě)點(diǎn)擊事件

我們這個(gè)時(shí)候直接點(diǎn)擊支付,看看會(huì)不會(huì)調(diào)起支付

這個(gè)時(shí)候一大堆爆紅,仔細(xì)看下,可以看出我們?cè)崎_(kāi)發(fā)環(huán)境id沒(méi)有初始化。
5,app.js里配置云開(kāi)發(fā)環(huán)境id
這里取到環(huán)境id

然后在app.js里配置

然后我們?cè)冱c(diǎn)擊下支付,可以看到我們成功的調(diào)起了支付

6,然后我用手機(jī)微信支付下試試



支付成功后,我們的控制臺(tái)也會(huì)有相應(yīng)的日志打印。

到這里我們就可以成功的在小程序里使用微信支付了,后面無(wú)非把價(jià)格和商品名字做活,做成動(dòng)態(tài)傳入的。 后面我也會(huì)把源碼放到網(wǎng)盤(pán)里,有需要的同學(xué),去我公號(hào)里回復(fù)‘云開(kāi)發(fā)支付’就可以獲取了。

第四節(jié),商品訂單支付案例講解
上面我們學(xué)會(huì)了支付功能,那么我們接下來(lái)就用一個(gè)簡(jiǎn)單的案例來(lái)教大家試下一個(gè)簡(jiǎn)單的商城小程序,包含以下功能
1,商品列表
2,訂單列表(分已支付和待支付)
3,支付功能
4,解決一些支付中常見(jiàn)的問(wèn)題
老規(guī)矩,先看下效果圖


頁(yè)面比較簡(jiǎn)陋,因?yàn)槲疫@里主要教大家如何實(shí)現(xiàn)支付功能的,所以頁(yè)面美化的問(wèn)題,大家課下有時(shí)間時(shí),自己做下美化就行了。
一,在app.json里配置tabbar多頁(yè)面
由于我們這里用到了兩個(gè)頁(yè)面,還是在我們前面章節(jié)的基礎(chǔ)上,直接改造頁(yè)面。我們配置多頁(yè)面就要用到tabbar了。所以我們先創(chuàng)建一個(gè)order頁(yè)面,頁(yè)面如何創(chuàng)建,我這里就不再累述了。小程序基礎(chǔ)的課里講了很多遍。 然后在app.json里配置如下

由于這里的配置不是本節(jié)的學(xué)習(xí)重點(diǎn),這里把代碼給到大家,大家直接粘貼到自己項(xiàng)目里就可以的。
"tabBar": { ? ?"color": "#a9b7b7", ? ?"selectedColor": "#11cd6e", ? ?"borderStyle": "white", ? ?"list": [{ ? ? ? ?"selectedIconPath": "image/home_yes.png", ? ? ? ?"iconPath": "image/home_no.png", ? ? ? ?"pagePath": "pages/good/good", ? ? ? ?"text": "商品首頁(yè)" ? ? ?}, ? ? ?{ ? ? ? ?"selectedIconPath": "image/order_yes.png", ? ? ? ?"iconPath": "image/order_no.png", ? ? ? ?"pagePath": "pages/order/order", ? ? ? ?"text": "我的訂單" ? ? ?} ? ?] ?},
這里用到的圖片資源,我給大家放到了課程配套資源里,如下

大家課下找石頭哥索要就行了(限購(gòu)課用戶(hù)奧),把資源下載下來(lái)以后,新建一個(gè)image文件夾,然后把資源放到image文件下就可以了。

到這里tabbar配置好了,我們接下來(lái)就要開(kāi)始代碼部分了。
二,把商品做活,放到數(shù)據(jù)庫(kù)里
我們前面學(xué)習(xí)的時(shí)候,用的是本地?cái)?shù)據(jù),接下來(lái)我就來(lái)給大家演示下,如何把商品數(shù)據(jù)放到數(shù)據(jù)庫(kù),方便后期動(dòng)態(tài)修改。
1,在云開(kāi)發(fā)數(shù)據(jù)庫(kù)里新建goods集合(表)

創(chuàng)建好以后,記得把權(quán)限改為所有人可讀寫(xiě)

創(chuàng)建好goods集合以后,就要往里面添加數(shù)據(jù)了,把我們之前本地寫(xiě)死的數(shù)據(jù),就可以做成活的了。

添加好的數(shù)據(jù)如下

2,改造商品列表代碼
我們之前的商品數(shù)據(jù)是寫(xiě)死在本地的,這次我們就可以請(qǐng)求云開(kāi)發(fā)數(shù)據(jù)庫(kù)里的數(shù)據(jù)了,后期可以動(dòng)態(tài)增刪,修改。

通過(guò)上圖我們可以看出,已經(jīng)成功的請(qǐng)求到了數(shù)據(jù)庫(kù)里的商品數(shù)據(jù),接下來(lái)把數(shù)據(jù)動(dòng)態(tài)的綁定到小程序頁(yè)面上就可以了。

可以看到,我們的數(shù)據(jù)已經(jīng)成功的顯示出來(lái)了。 到這里我們的商品列表頁(yè)改造就算完成了。
三,創(chuàng)建訂單
我們之前學(xué)習(xí)是點(diǎn)擊購(gòu)買(mǎi)就直接支付了,沒(méi)有一個(gè)訂單來(lái)動(dòng)態(tài)的記錄。所以我們這一節(jié),先來(lái)教大家如何新建訂單。
1,新建order表
我們要在云開(kāi)發(fā)數(shù)據(jù)庫(kù)里生成訂單,其實(shí)就是往訂單表里增加數(shù)據(jù)。所以還是要先新建order集合(表)

這里要注意下,我們的訂單表的權(quán)限設(shè)置為“僅創(chuàng)建者可讀寫(xiě)”,為什么呢? 因?yàn)槲覀兠總€(gè)人的訂單肯定不想讓別人看到吧。所以我們?cè)O(shè)置完僅創(chuàng)建者可讀寫(xiě),那么這個(gè)訂單就只有我們自己可以看。上面的goods表只所以設(shè)置為所有人可讀,是因?yàn)槲覀兊纳唐窋?shù)據(jù)是要每個(gè)客戶(hù)都能看到的。
2,創(chuàng)建訂單代碼編寫(xiě)
我們上面order表創(chuàng)建好以后,我們用戶(hù)再點(diǎn)購(gòu)買(mǎi)的時(shí)候,就不能直接去支付了,應(yīng)該先創(chuàng)建一個(gè)訂單,然后再去支付。下面我們就分解開(kāi)。教大家實(shí)現(xiàn)訂單的創(chuàng)建。

上面代碼注釋很清楚了,我們創(chuàng)建訂單時(shí)需要往訂單里保存商品名,金額,下單時(shí)間,訂單狀態(tài)。然后看下order表里的訂單數(shù)據(jù)如下

這樣我們新的訂單就創(chuàng)建成功了。 創(chuàng)建訂單時(shí),我們有用到一個(gè)獲取當(dāng)前時(shí)間的方法,這個(gè)方法是我們自定義的,由于不是本節(jié)學(xué)習(xí)重點(diǎn),我就把這個(gè)方法的代碼貼出來(lái)給大家,大家后面直接把代碼放到自己項(xiàng)目里用就行了。
// 獲取當(dāng)前時(shí)間的工具方法 ?_getCurrentTime() { ? ?var d = new Date(); ? ?var month = d.getMonth() + 1; ? ?var date = d.getDate(); ? ?var day = d.getDay(); ? ?var hours = d.getHours(); ? ?var minutes = d.getMinutes(); ? ?var seconds = d.getSeconds(); ? ?var ms = d.getMilliseconds(); ? ?var curDateTime = d.getFullYear() + '年'; ? ?if (month > 9) ? ? ?curDateTime += month + '月'; ? ?else ? ? ?curDateTime += month + '月'; ? ?if (date > 9) ? ? ?curDateTime = curDateTime + date + "日"; ? ?else ? ? ?curDateTime = curDateTime + date + "日"; ? ?if (hours > 9) ? ? ?curDateTime = curDateTime + hours + "時(shí)"; ? ?else ? ? ?curDateTime = curDateTime + hours + "時(shí)"; ? ?if (minutes > 9) ? ? ?curDateTime = curDateTime + minutes + "分"; ? ?else ? ? ?curDateTime = curDateTime + minutes + "分"; ? ?return curDateTime; ?},
四,訂單支付
我們上面創(chuàng)建好訂單以后,應(yīng)該在訂單創(chuàng)建成功的回調(diào)里調(diào)起支付。其實(shí)支付的代碼和我們前面學(xué)習(xí)基本都一樣,唯一變化的就是要把我們新建的訂單id傳給支付云函數(shù),把訂單id作為支付時(shí)的單號(hào)。

上圖是我們創(chuàng)建訂單時(shí),返回的信息,可以看到返回信息里有一個(gè)_id字段,這個(gè)字段在我們order表里也有。

其實(shí)我們支付的時(shí)候單號(hào)要保證唯一性,其實(shí)這個(gè)_id是微信官方自動(dòng)為我們創(chuàng)建的,是唯一的,所以可以直接拿來(lái)用的,那么我們把之前的goPay支付方法稍微改造下。把這個(gè)_id作為訂單號(hào)傳給支付云函數(shù)。

可以看出我們?cè)趧?chuàng)建訂單成功的回調(diào)里去調(diào)起支付,依然可以支付成功。 我們的pay0611云函數(shù)唯一的變化就是把訂單號(hào)做成了活的。

重點(diǎn)注意: 我們的云函數(shù)只要有任何改動(dòng),都要記得重新部署云函數(shù)。

到這里我們的支付和訂單部分就改造完成了,接下來(lái)就要去實(shí)現(xiàn)訂單的未支付和已支付列表了。
五,訂單頁(yè)面的展示(分已支付和未支付)
這一節(jié)知識(shí)點(diǎn)比較多,也比較復(fù)雜,我先把代碼貼給大家,會(huì)在視頻里仔細(xì)給大家一步步講解。
order.wxml

這里切換未支付和已支付的分類(lèi)欄代碼如下:
<!--導(dǎo)航條--> <view class="navbar"> ?<lable wx:for="{{navbar}}" data-idx="{{index}}" class="item {{currentTab==index ? 'active' : ''}}" wx:key="unique" ? ?bindtap="navbarTap"> ? ?<text>{{item}}</text> ?</lable> </view> <!-- 列表區(qū)域 --> <view wx:if="{{list.length>0}}"> ?<!-- 外層 --> ?<view wx:for="{{list}}" wx:key="key"> ? ?<!-- 編號(hào) --> ? ?<view class='itemRoot'> ? ? ?<text class='seriac_name'>商品:{{item.goodName}}</text> ? ? ?<text class='seriac_name'>金額:{{item.totalFee}}元</text> ? ? ?<text class='seriac_name'>下單時(shí)間:{{item.time}}</text> ? ? ?<text wx:if="{{item.status==0}}" class='coent_log_base' data-item='{{item}}' bindtap='payOrder'>去支付</text> ? ?</view> ?</view> </view> <!-- 否則 --> <view wx:else class='cont_count'> ?<label class='none_tab'>數(shù)據(jù)為空哦~~</label> </view>
roder.js 這里是重點(diǎn)代碼,直接把完整的代碼貼給大家。
var app = getApp() let DB = wx.cloud.database(); let orderStatus = 0; //0新下單未支付,1支付成功 Page({ ?data: { ? ?// 頂部菜單切換 ? ?navbar: ["未支付", "已支付"], ? ?// 默認(rèn)選中菜單 ? ?currentTab: 0, ? ?list: [] ?}, ?//頂部tab切換 ?navbarTap: function (e) { ? ?let index = e.currentTarget.dataset.idx; ? ?this.setData({ ? ? ?currentTab: index ? ?}) ? ?console.log("index", index) ? ?//0新下單未支付,1支付成功 ? ?if (index == 1) { ? ? ?orderStatus = 1; ? ?} else { ? ? ?orderStatus = 0; ? ?} ? ?this.getMyOrderList(); ?}, ?onLoad() { ? ?this.getMyOrderList(); ?}, ?//獲取訂單 ?getMyOrderList() { ? ?let that = this; ? ?DB.collection("order") ? ? ?.where({ ? ? ? ?status: orderStatus ? ? ?}) ? ? ?.get({ ? ? ? ?success: function (res) { ? ? ? ? ?console.log("獲取成功", res.data) ? ? ? ? ?let datalist = res.data; ? ? ? ? ?console.log(res); ? ? ? ? ?if (datalist && datalist.length > 0) { ? ? ? ? ? ?that.setData({ ? ? ? ? ? ? ?list: datalist ? ? ? ? ? ?}) ? ? ? ? ?} else { ? ? ? ? ? ?that.setData({ ? ? ? ? ? ? ?list: [] ? ? ? ? ? ?}) ? ? ? ? ?} ? ? ? ?} ? ? ?}) ?}, ?//支付訂單 ?payOrder(event) { ? ?let good = event.currentTarget.dataset.item ? ?console.log('支付的good', good) ? ?wx.cloud.callFunction({ ? ? ?name: 'pay0611', ? ? ?data: { ? ? ? ?outTradeNo: good._id, ? ? ? ?goodName: good.name, ? ? ? ?totalFee: good.totalFee ? ? ?}, ? ? ?success: res => { ? ? ? ?console.log("獲取支付參數(shù)成功", res) ? ? ? ?const payment = res.result.payment ? ? ? ?//調(diào)起支付 ? ? ? ?wx.requestPayment({ ? ? ? ? ?...payment, ? ? ? ? ?success(res) { ? ? ? ? ? ?console.log('支付成功', res) ? ? ? ? ?}, ? ? ? ? ?fail(res) { ? ? ? ? ? ?console.error('支付失敗', res) ? ? ? ? ?} ? ? ? ?}) ? ? ?}, ? ? ?fail: res => { ? ? ? ?console.log("獲取支付參數(shù)失敗", res) ? ? ?}, ? ?}) ?} })
我會(huì)在視頻里給大家做仔細(xì)講解,手把手的教大家把這部分代碼敲出來(lái)。
