小程序開發(fā)手冊(cè)(小程序開發(fā)手冊(cè)是什么)
本篇文章給大家談?wù)勑〕绦蜷_發(fā)手冊(cè),以及小程序開發(fā)手冊(cè)是什么對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。
微信小程序支付 (一、生成prepay_id) 2018-08-06
微信公眾平臺(tái): 微信公眾平臺(tái)
商戶平臺(tái): 商戶平臺(tái)
開發(fā)手冊(cè) api 是:?
生成XML的測(cè)試接口: 測(cè)試接口
32位隨機(jī)碼生成器
1 配置參數(shù), 一個(gè)都不能少(這些都是必填的,還有其他選填的參數(shù),也可以隨心情填寫)
? ??appid? ? ? ? 此小程序的唯一標(biāo)識(shí) 例如:wxed9dxxx6d6cxxx9e
? ??body? ? ? ? 可以寫商品描述 例如:我是商品描述,用戶買了兩個(gè)饅頭
? ??mch_id? ? 商戶id 需在 商戶平臺(tái) ?查看(申請(qǐng)商戶平臺(tái)成功就會(huì)得到) 如: 149411***2
? ??nonce_str? ? 隨機(jī)字符串(別帶小數(shù)點(diǎn)(沒考證 感覺)) 例如:76521019851170500000
? ??notify_url? ? 成功后的通知地址 例如:
? ??openid? ? ? ? 用戶的唯一標(biāo)識(shí) 在用戶使用小程序的時(shí)候通過其 code 換取 openid?
????????????????????????例如:?obxgc5CgBbgKDrvcxxxxxJ-xxxxx
? ??out_trade_no????????商戶訂單號(hào) 例如:20180805740161 需要無重復(fù)
? ??spbill_create_ip? ? 終端ip(服務(wù)器的ip)貌似 127.0.0.1 就行
? ??total_fee? ? ? ? ? ? ? ? 此單的交易額度(錢 money) 例如:888 單位是 分錢。及8.88元錢 ( 注意是數(shù)值型,非字符型,除此之外其他的都是字符型 )
? ??trade_type? ? 小程序用 'JSAPI' 其他看api
2 將以上參數(shù)(必要參數(shù)一個(gè)不能少)按照 key 字典排序,進(jìn)行拼接。
例如: appid=wxedxxx2xxx6c03e9ebody=我是商品描述,用戶買了兩個(gè)饅頭.mch_id=149411***2nonce_str=76521019851170500000 ......
3 在結(jié)尾加上 商戶的秘鑰?mch_key (需在商戶平臺(tái)配置 在:賬戶中心--賬戶設(shè)置--API安全--API秘鑰 ,可以用 32位隨機(jī)碼生成器 ?生成)
? ??+ "key=" + mch_key
5 對(duì)拼接成的字符串,進(jìn)行md5加密--轉(zhuǎn)大寫 --生成 簽名 sign
? ? 例如:?425F6561A654B366B5519F000CF2AE61
6 將以上參數(shù)拼成? xml
let _xmlUnifiedorder = `
? ? ? ? ? ? ${myObj.appid}
? ? ? ? ? ? ${myObj.body}
? ? ? ? ? ? ${myObj.mch_id}
? ? ? ? ? ? ${myObj.nonce_str}
? ? ? ? ? ? ${myObj.notify_url}
? ? ? ? ? ? ${myObj.openid}
? ? ? ? ? ? ${myObj.out_trade_no}
? ? ? ? ? ? ${myObj.spbill_create_ip}
? ? ? ? ? ? ${myObj.total_fee}
? ? ? ? ? ? ${myObj.trade_type}
? ? ? ? ? ? ${sign}
? ? ? ? `;
7 攜帶參數(shù) post 訪問?? 接口
? ? 如果正確 會(huì)成功得到 xml格式的??prepay_id ,如果簽名錯(cuò)誤進(jìn)行下面的錯(cuò)誤查找。
? ? ~~:進(jìn)行錯(cuò)誤查找? 可以拿出參數(shù)在? 測(cè)試接口 ?進(jìn)行測(cè)試 ,無異常可以正常生成 xml之后,如果還報(bào)錯(cuò)。
? ? 試著 更改 商戶平臺(tái)的秘鑰 (詳細(xì)請(qǐng)看第 3 步)。貌似很多人都踩這個(gè)雷了? ...
code
// 字典排序 key1=xxxkey2=zzz 拼接成字符串
function joinToStr(_obj) {
? ? let keyArr = [];
? ? for (let key in _obj) {
? ? ? ? keyArr.push(key);
? ? }
? ? keyArr = keyArr.sort();
? ? console.log("keyArrSort---", keyArr);
? ? //? ? paySign = MD5(appId=wxd678efh567hg6787nonceStr=5K8264ILTKCH16CQ2502SI8ZNMTM67VSpackage=prepay_id=wx2017033010242291fcfe0db70013231072signType=MD5timeStamp=1490840662key=qazwsxedcrfvtgbyhnujmikolp111111) = 22D9B4E54AB1950F51E0649E8810ACD6
? ? // _str 是 paySign 中MD5 包裹的字符串部分
? ? let _str = "";
? ? let len = keyArr.length;
? ? for (let i = 0; i len; i++) {
? ? ? ? if (i == len - 1) {
? ? ? ? ? ? _str += (keyArr[i] + "=" + _obj[keyArr[i]]);
? ? ? ? } else {
? ? ? ? ? ? _str += (keyArr[i] + "=" + _obj[keyArr[i]] + "");
? ? ? ? }
? ? }
? ? return _str;
}
/code
微信小程序電腦端下載不了怎么辦
這種情況的話,你只需要需要把電腦里面的微信更新到最新版本。這樣就可以下載微信小程序電腦端了。
開發(fā)一個(gè)小程序,都需要什么流程
我們可以先將小程序開發(fā)過程捋一捋,分為以下幾個(gè)部分:
1、需求調(diào)研和梳理
2、產(chǎn)品的設(shè)計(jì)和審核
3、UI設(shè)計(jì)和審核
4、分解開發(fā)任務(wù)和排期
5、開發(fā)與聯(lián)調(diào)
6、小程序測(cè)試以及修改bug
由于前期需求溝通可能會(huì)花費(fèi)大量的時(shí)間,所以開發(fā)者一定首先明確自己要做什么,以及這個(gè)需求是否能實(shí)現(xiàn),定制化開發(fā)更有利于項(xiàng)目的靠譜落地,在某種程度上,降低后期的時(shí)間。
目前小程序開發(fā)有三種方式,不同的方式和小程序功能的復(fù)雜程度決定了小程序開發(fā)所需要用的時(shí)間。
自己開發(fā)小程序。自行開發(fā)小程序需要公司擁有自己的技術(shù)人員,程序的復(fù)雜程度是時(shí)間的主要衡量標(biāo)準(zhǔn)。
外包。核算成本后,在預(yù)算允許內(nèi),可以選擇找技術(shù)公司進(jìn)行外包,功能簡(jiǎn)單的一般要一個(gè)月到三個(gè)月不等,能夠滿足需求,后期維護(hù)簡(jiǎn)單。
購(gòu)買模板。這種發(fā)式可以快速獲得小程序,但功能單一,后期更迭難度大。
一個(gè)小程序的后臺(tái)是web端
小程序
第一個(gè)web項(xiàng)目-微信小程序后端開發(fā)
?
第一個(gè)web項(xiàng)目-微信小程序后端開發(fā)
前言
需求分析
團(tuán)隊(duì)分工
總體設(shè)計(jì)
開發(fā)工具及編碼實(shí)現(xiàn)
小程序前端
后端
數(shù)據(jù)庫(kù)
接口代碼
管理系統(tǒng)前端1.0
管理系統(tǒng)前端2.0
測(cè)試
后端本地測(cè)試
前后端聯(lián)合測(cè)試
部署
總結(jié)
第一個(gè)web項(xiàng)目-微信小程序后端開發(fā)
前言
去年暑假一個(gè)偶然的機(jī)會(huì)我和幾位同學(xué)加入了學(xué)院一位老師主持的教改項(xiàng)目,需求是開發(fā)一個(gè)基于SPOC與翻轉(zhuǎn)課堂的計(jì)算機(jī)組成原理課程的學(xué)習(xí)app(類似慕課、知到),后來經(jīng)過討論決定降低難度,先做一個(gè)微信小程序,附帶一個(gè)后臺(tái)管理系統(tǒng),于是我的第一個(gè)web項(xiàng)目就開始了~
需求分析
這里簡(jiǎn)單介紹下SPOC和翻轉(zhuǎn)課堂的意思
翻轉(zhuǎn)課堂
“翻轉(zhuǎn)課堂”(Flipping Classroom)是一種顛覆傳統(tǒng)教學(xué)由“課堂授課聽講 + 課后作業(yè)練習(xí)”轉(zhuǎn)變?yōu)椤罢n前自主學(xué)習(xí) + 課堂協(xié)作探究”的新型教學(xué)模式。
SPOC
SPOC(Small Private Online Course)一般被譯為小規(guī)模限制性在線課程或者小規(guī)模私有型網(wǎng)絡(luò)課程,音譯為“私播課”。
這次項(xiàng)目的需求是開發(fā)一個(gè)學(xué)習(xí)類型的小程序,用戶分為學(xué)生和教師,其中學(xué)生可以觀看視頻、課件、動(dòng)畫,完成作業(yè)、考試以及發(fā)布評(píng)論、點(diǎn)贊、回復(fù),而教師可以上傳教學(xué)視頻、課件、動(dòng)畫和發(fā)布作業(yè)、考試、通知,以及查看學(xué)生的學(xué)習(xí)情況,也可以查看評(píng)論回復(fù),及時(shí)解答學(xué)生的疑惑。
團(tuán)隊(duì)分工
團(tuán)隊(duì)一共有四個(gè)人,總體工作分為產(chǎn)品設(shè)計(jì)、前端開發(fā)、后端開發(fā)三部分,然后每部分由兩人負(fù)責(zé)。其中我是負(fù)責(zé)后端開發(fā)的,同時(shí)兼任項(xiàng)目負(fù)責(zé)人(其實(shí)也沒有聽上去那么高大上,只是需要承擔(dān)更多決策、協(xié)調(diào)、溝通的角色)。
總體設(shè)計(jì)
這里分為小程序和管理系統(tǒng)
首先是小程序,放幾張使用墨刀制作的原型圖,這里多說兩句,市面上的小程序基本都是微信授權(quán)直接登錄,最多綁定手機(jī)號(hào),我們這個(gè)由于要統(tǒng)計(jì)學(xué)生的學(xué)習(xí)情況才設(shè)置了注冊(cè)和登錄功能
至于管理系統(tǒng),由于是10月份才開始做的,而且是我和另一位做后端的同學(xué)負(fù)責(zé)的,時(shí)間比較緊,我們作為前端小白沒有十分系統(tǒng)的方法去做開發(fā),只是大概確定了需要做哪些模塊,每個(gè)模塊對(duì)哪些表的增刪改查,這里原型圖就不放了(較簡(jiǎn)陋)
開發(fā)工具及編碼實(shí)現(xiàn)
小程序前端
據(jù)我了解,做前端的同學(xué)先去微信公眾平臺(tái)注冊(cè)賬號(hào),然后做一些開發(fā)設(shè)置,具體步驟自行百度。前端用的是微信開發(fā)者工具,有不會(huì)的基本上在微信開放文檔都可以找到,包括許多實(shí)用的API。
后端
這里分為數(shù)據(jù)庫(kù)、接口代碼兩部分
數(shù)據(jù)庫(kù)
用的是mysql數(shù)據(jù)庫(kù),之前是跟著學(xué)堂在線的一個(gè)小程序入門教程做的,它推薦的本地開發(fā)環(huán)境是phpstudy,里面集成了php、mysql、apache、FTP、Nginx以及數(shù)據(jù)庫(kù)管理工具phpMyAdmin,關(guān)于phpMyAdmin使用請(qǐng)看
原本的數(shù)據(jù)庫(kù)設(shè)計(jì)得不好,存在較多冗余數(shù)據(jù),后來學(xué)習(xí)了數(shù)據(jù)庫(kù)系統(tǒng)這門課,我進(jìn)行了大改,先確定有哪些實(shí)體以及實(shí)體之間的聯(lián)系,然后畫er圖,最后再建模,通過外碼約束大量減少了冗余,也減少了表的數(shù)量。
接口代碼
教程使用的是php語(yǔ)言,框架是thinkphp5,開發(fā)手冊(cè)看,我當(dāng)時(shí)是去b站找視頻學(xué)了下php基礎(chǔ)語(yǔ)法,然后就去學(xué)原生php以及框架如何操作數(shù)據(jù)庫(kù)。然后根據(jù)業(yè)務(wù)邏輯開始編碼,其實(shí)每個(gè)接口(或者叫類里面的一個(gè)函數(shù))結(jié)構(gòu)都差不多,主要是三部分:接收前端傳來的數(shù)據(jù)、增/刪/改/查、返回結(jié)果給前端。
順便說下代碼編輯用的是sublime text3,教程看,這個(gè)不是ide,沒有那么多的功能比如調(diào)試、運(yùn)行,單純是只有編輯、加注釋、格式化等等,這里吐槽下自帶的格式化代碼功能(先選擇代碼,再Edit - Line - Reindent),有點(diǎn)辣雞。而且如果有語(yǔ)法錯(cuò)誤不會(huì)像eclipse那樣自動(dòng)檢測(cè)出來,之前被坑了幾次,肉眼找不到的話只能用postman去測(cè)試了。
管理系統(tǒng)前端1.0
一開始我們是不知道還要做個(gè)管理系統(tǒng)的,以為所有功能都放在小程序,后來老師跟我們討論聊到這個(gè)問題,我們才知道原來還有這回事,其實(shí)就是管理系統(tǒng)應(yīng)該具有一切功能,即對(duì)數(shù)據(jù)庫(kù)所有表的增刪改查,而小程序只需要有些輕量的功能即可,至于上傳大容量文件、查看學(xué)習(xí)情況這些不夠輕量的功能全部放在管理系統(tǒng)。好吧,凡事總有第一次,我們就開始學(xué)習(xí)基本的前端三件套html,css,javascript。
開始做的時(shí)候我們希望先實(shí)現(xiàn)功能,界面難看點(diǎn)沒有太多關(guān)系,于是學(xué)了部分三件套的基礎(chǔ)后又學(xué)了ajax技術(shù)(因?yàn)橐c后端通信),這里最開始用的是創(chuàng)建XMLHttpRequest 對(duì)象,用open()方法設(shè)置請(qǐng)求類型和url,用send()方法發(fā)送數(shù)據(jù)到后端,直到遇到了jquery,后面的請(qǐng)求統(tǒng)一都用$.ajax()了。
接下來又遇到了一個(gè)難點(diǎn),因?yàn)榛径加帽砀駚碚故緮?shù)據(jù),那獲取數(shù)據(jù)后如何動(dòng)態(tài)地加入表格呢?查找資料后用每一條數(shù)據(jù)拼接成由tr標(biāo)簽包含的字符串,然后用jquery獲取表格標(biāo)簽后調(diào)用append()方法加入表格中。
除此之外,我們想在每行末尾設(shè)置按鈕進(jìn)行事件處理,于是我們append數(shù)據(jù)的同時(shí)也把button標(biāo)簽放入剛才的字符串中,然后給每個(gè)button設(shè)置id屬性,比如用于修改數(shù)據(jù)的就叫fixi,最后這個(gè)i是代表表格第幾行,然后添加事件監(jiān)聽,點(diǎn)擊button時(shí)獲取id,然后查看最后一位是多少?gòu)亩_定是第幾行。
這些做法實(shí)現(xiàn)起來是挺繁瑣的,而且感覺在重復(fù)造輪子,我們也做得有點(diǎn)郁悶,因?yàn)槊總€(gè)頁(yè)面基本都要這樣做,但是當(dāng)時(shí)沒有那么多的時(shí)間精力去學(xué)習(xí)框架,只是想先實(shí)現(xiàn)功能(u1s1,上學(xué)期的課多到我快吐了)。
放兩張界面圖
管理系統(tǒng)前端2.0
之前放假,總算有較多空余時(shí)間了,我們決定要改下界面,但畢竟自身水平不高,因此需要用一點(diǎn)第三方的東西了。
在跟小程序前端測(cè)試了部分功能后,有一天后端同學(xué)找到了一個(gè)開源的框架然后我們一起看了下說明文檔,最后決定:就用它了。
有請(qǐng)layui登場(chǎng),經(jīng)典模塊化前端框架、低門檻開箱即用。
真正使用之前可以先看看文檔,個(gè)人感覺上手還是挺快的。layui提供了許多實(shí)用的組件包括彈出層、表格、表單、文件上傳、流加載等等。
就拿表格來說,之前我們用append動(dòng)態(tài)添加數(shù)據(jù),現(xiàn)在直接table.render(),設(shè)置好參數(shù)就行了;之前我們給button設(shè)置id進(jìn)行事件處理,現(xiàn)在綁定工具條,直接table.on()就行了;而且之前我們沒實(shí)現(xiàn)的分頁(yè),現(xiàn)在設(shè)置分頁(yè)參數(shù)就行了,然后查詢數(shù)據(jù)庫(kù)時(shí)分頁(yè)讀取。
另外,layui提供了一個(gè)頁(yè)面布局的模板,包括logo、用戶名、退出按鈕、導(dǎo)航欄以及一些css動(dòng)畫。我們要做的就是按照它的模板來,頁(yè)面元素的樣式也參考它提供的。
有了layui的助攻,我們可以將更多注意力放在業(yè)務(wù)邏輯上,更多關(guān)注用戶體驗(yàn)。
測(cè)試
后端本地測(cè)試
工具:postman
使用:打開一個(gè)新窗口,選擇請(qǐng)求類型,輸入url,設(shè)置參數(shù),點(diǎn)擊send
這種測(cè)試我認(rèn)為是模擬前端發(fā)送數(shù)據(jù)然后運(yùn)行后端代碼,看結(jié)果是否正確,屬于白盒測(cè)試,但是我們不是專業(yè)測(cè)試人員,目前這樣測(cè)試不是做得很規(guī)范,只能盡可能想到不同的測(cè)試用例。
前后端聯(lián)合測(cè)試
由于放假回家了沒辦法面對(duì)面,只能借助騰訊會(huì)議線上測(cè)了。
在部署工作完成之后,一般是我們寫好接口代碼,然后把url和需要的參數(shù)告訴前端同學(xué)(這里注意下,微信小程序的請(qǐng)求api只允許https開頭的url,而且前端必須在微信公眾平臺(tái)配置好合法域名,不然會(huì)報(bào)錯(cuò)),前端把這些東西填入那個(gè)wx.request的api然后運(yùn)行,他們會(huì)查看返回的數(shù)據(jù)是否正確,我們會(huì)查看數(shù)據(jù)庫(kù)的情況,如果沒問題會(huì)測(cè)試多幾個(gè)數(shù)據(jù),都可以的話就到下一個(gè)功能,這種方式應(yīng)該是屬于軟工講到的V模型的單元測(cè)試。
部署
用的是新浪云,實(shí)名認(rèn)證、學(xué)生認(rèn)證后會(huì)送一些云豆(新浪云的計(jì)費(fèi)單位,1RMB=100云豆)
跟著之前說的教程把整個(gè)thinkphp項(xiàng)目部署到新浪云,具體步驟看
代碼
在代碼管理那里可上傳壓縮包,或者在線編輯(跟記事本差不多),改動(dòng)大的最好在本地寫好再貼上去
數(shù)據(jù)庫(kù)
開啟共享型mysql服務(wù),目前用了phpmyadmin4.9版本,然后建表或?qū)雜ql文件
緩存
開啟memcached服務(wù),設(shè)置容量16MB(省點(diǎn)錢),其實(shí)這個(gè)服務(wù)我不是很清楚干什么的,但如果不打開訪問接口時(shí)會(huì)報(bào)致命錯(cuò)誤?
文件存儲(chǔ)
我們需要保存許多類型的文件包括視頻、課件、動(dòng)畫、作業(yè)、考試、頭像,因此需要存放在服務(wù)端。這里開啟storage服務(wù),使用方法看,普通用戶配額5個(gè)bucket,每個(gè)容量10G,然后直接當(dāng)作本地磁盤那樣用就行了,控制臺(tái)或?qū)懘a都可上傳文件,上傳后獲得url,然后就可以通過網(wǎng)絡(luò)訪問,關(guān)于新浪云環(huán)境下php如何操作看官方文檔。
域名
應(yīng)用信息可查看二級(jí)域名,獨(dú)立域名需要購(gòu)買且備案
日志
日志中心可查看每次請(qǐng)求的接口、時(shí)間、請(qǐng)求方設(shè)備等信息
其它
控制臺(tái)還可以實(shí)時(shí)查看流量統(tǒng)計(jì)、資源使用情況,以及消費(fèi)情況
總結(jié)
這個(gè)項(xiàng)目我也算前后端都做了一遍,感覺前端不太適合自己,可能是對(duì)頁(yè)面元素樣式、用戶體驗(yàn)不夠敏感,不過必須承認(rèn)前端是挺有意思的。至于后端是更加注重邏輯,目前我對(duì)后端的了解只停留在數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、部署層面,其實(shí)如果用戶數(shù)量非常多還要考慮高并發(fā)的問題,也就要使用多線程、負(fù)載均衡、消息隊(duì)列等技術(shù)了,所以還有很多技術(shù)需要學(xué)習(xí)
關(guān)于小程序開發(fā)手冊(cè)和小程序開發(fā)手冊(cè)是什么的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。