# 一个不一样的小程序开发教程
## 时空穿越者杨哥 B站
### 前言
* 网上太多讲基础语法的教程,文本的、视频的
* 这里不用那种方式,把每个问题拆解,变为一个一个的小问题
* 每个小问题基本独立,有时个别有关联,松耦合尽量
* 有时会分前台、后台两个分别讲解,也有前后台一起讲
* 觉得云开发简单的,请移步云开发,这里没用到云开发
* 适用个体工商户、公司直营者,因为教程内容包括微信收款[^1]
### 复杂的系统也是由简单的功能组合而成
### 分解问题也是一种能力
***
### 微信收款开发 注意事项
* 为什么把这个放前面? 收钱不重要吗?你是卖产品也好、卖服务也好,客户也能方便的支付相应的报酬
* 你只能是个体工商户、公司[^2],不能是个人,个人是无法通过小程序收款的(除非你非要在小程序里塞入你的收款二维码,不怕被封你就这么干,据说到一定额度、符合某些条件后必封)
* 必须要有外网服务器,阿里云、腾讯云了啥的都行
* 调试收款时是无需外网服务器的,但最后的回调验签,微信会post你的服务器
* 必须做https,有免费的,不过要三月、半年一手动更新,有钱你就买
* 必须做域名备案
* 必须域名指到你的外网ip,正常配置好指向及相关
* 阿里云了啥的,防火墙一定要把相应的端口打开,否则累死你也访问不通
下图为支付全流程说明
<img src='http://i0.hdslb.com/bfs/new_dyn/1d386c046454a8adc7b7dd1b98b661ae349481740.png' />
### 明确需求
* 做啥开发也要先把做什么东西搞清楚先
* 有产品经理的话是最好,先把需求明确了,要是能出原型当然perfect
* 没有产品经理就自己画,原型工具不会用,用笔纸直接画总会吧
* 把需求整理出来之后最好排可优先级,哪个比较重要的、急需的往前排排
* 正规开发需求阶段要出“需求规格说明书”的(也是唯一产出物),当然,整个世界都是个草台班子,没有需求规格说明书,至少你要出个1、2、3要做什么功能总得有吧
### 前端开发准备
* 微信小程序开发者工具,不用多说
### 后端开发准备
* 如果你是名开发者用你觉得好用的语言开发即可,java/php/python微信开发文档中不少给出了示例代码
* 这里推荐Node.js,虽然示例代码中没有Node.js的,但是Node.js是js语法,天生和前端开发相同,无需刻意做语法切换,另外Node.js为异步开发,需要注意一下
* 后面的后端开发讲解采用Node.js
* IDE集成开发环境选用VSCode
### 确定你的数据库
* 简单的订单系统(包括付款),可以使用单文件型的Sqlite
* 复杂的可以使用Mysql社区版(免费)
* 有钱任性可以搞Oracle或者SQLServer之类的商业库,或者说可以无缝和你公司的大型、复杂业务系统对接能方便一些
* 本教程用的Sqlite
### Let's begin - the first step
[^1]: 是收款,不是付款,可以做任何订单系统,直接用小程序就可以生成订单并收款
[^2]: 目前个体工商户、公司的申请,都是可以完全在网上进行,无需去工商管理所之类的实地,当然如果你需要纸质的,还是要去取一趟(应该是有工本费),也看你所在地政策啦
浙公网安备 33010602011771号