微信小程序taro学习记录
关于Taro京东- 凹凸实验室Taro 是⼀套遵循 React 语法规范的 多端开发 解决⽅案。现如今市⾯上端的形态多种多样,Web、React-Native、微信⼩程序等各种端⼤⾏其道,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然⾮常⾼,这时候只编写⼀套代码就能够适配到多端的能⼒就显得极为需要。使⽤ Taro,我们可以只书写⼀套代码,再通过 Taro 的编译
关于Taro
京东- 凹凸实验室
Taro 是⼀套遵循 React 语法规范的 多端开发 解决⽅案。
现如今市⾯上端的形态多种多样,Web、React-Native、微信⼩程序等各种端⼤⾏其道,当业务要求同
时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然⾮常⾼,这时候只编写
⼀套代码就能够适配到多端的能⼒就显得极为需要。
使⽤ Taro,我们可以只书写⼀套代码,再通过 Taro 的编译⼯具,将源代码分别编译出可以在不同端
(微信/百度/⽀付宝/字节跳动/QQ/京东⼩程序、快应⽤、H5、React-Native 等)运⾏的代码。
快速开始
快速开始⽂档:https://taro-docs.jd.com/taro/docs/GETTING-STARTED.html
node 环境(>=8.0.0)
CLI ⼯具安装
⾸先,你需要使⽤ npm 或者 yarn 全局安装 @tarojs/cli ,或者直接使⽤npx:
# 使⽤ npm 安装 CLI
$ npm install -g @tarojs/cli
# OR 使⽤ yarn 安装 CLI
$ yarn global add @tarojs/cli
# OR 安装了 cnpm,使⽤ cnpm 安装 CLI
$ cnpm install -g @tarojs/cli
项⽬初始化
使⽤命令创建模板项⽬
$ taro init myApp
项⽬⽬录结构
!"" dist 编译结果⽬录
!"" config 配置⽬录
| !"" dev.js 开发时配置
| !"" index.js 默认配置
| #"" prod.js 打包时配置
!"" src 源码⽬录
| !"" pages ⻚⾯⽂件⽬录
| | !"" index index ⻚⾯⽬录
| | | !"" index.js index ⻚⾯逻辑
| | | #"" index.css index ⻚⾯样式
| !"" app.css 项⽬总通⽤样式
| #"" app.js 项⽬⼊⼝⽂件
#"" package.json
⼊⼝⽂件
⼊⼝⽂件默认是 src ⽬录下的 app.js 。
项⽬组织
以下⽂件组织规范为最佳实践的建议
所有项⽬源代码请放在项⽬根⽬录 src ⽬录下,项⽬所需最基本的⽂件包括
- ⼊⼝⽂件 以及 ⻚⾯⽂件
- ⼊⼝⽂件为 app.js
⻚⾯⽂件建议放置在 src/pages ⽬录下
⼀个可靠的 Taro 项⽬可以按照如下⽅式进⾏组织
!"" config 配置⽬录
| !"" dev.js 开发时配置
| !"" index.js 默认配置
| #"" prod.js 打包时配置
!"" src 源码⽬录
| !"" components 公共组件⽬录
| !"" pages ⻚⾯⽂件⽬录
| | !"" index index ⻚⾯⽬录
| | | !"" banner ⻚⾯ index 私有组件
| | | !"" index.js index ⻚⾯逻辑
| | | #"" index.css index ⻚⾯样式
| !"" utils 公共⽅法库
| !"" app.css 项⽬总通⽤样式
| #"" app.js 项⽬⼊⼝⽂件
#"" package.json
微信⼩程序转taro
https://taro-docs.jd.com/taro/docs/taroize.html
微信原⽣⼩程序转 Taro 的操作⾮常简单,⾸先必须安装使⽤ npm i -g @tarojs/cli 安装 Taro 命令
⾏⼯具,其次在命令⾏中定位到⼩程序项⽬的根⽬录,根⽬录中运⾏:
⼩程序的⽬录,不是云函数的
$ taro convert
即可完成转换。转换后的代码保存在根⽬录下的 taroConvert ⽂件夹下。你需要定位到
taroConvert ⽬录执⾏ npm install 命令之后就可以使⽤ taro build 命令编译到对应平台的代
码。
把转换后的代码⽬录,粘贴到taro⼩程序的src⽬录
进⼊taro⼩程序⽬录的⼊⼝ app.js/app.jsx,添加⽬录⻚⾯
class App extends Component {
config = {
pages: [
"pages/booksList/booksList",
"pages/book/book",
"pages/index/index"
],
...
cloud: true
}
⾥⾯会含有微信⼩程序和taro的混合语法,需要安装
npm i @tarojs/with-weapp
就可以在taro⾥⽀持微信⼩程序的语法了。
taro-UI
依赖taro脚⼿架
进⼊项⽬⼩程序⽬录执⾏
npm install taro-ui
使⽤ Taro UI
// page.js
import { AtButton } from 'taro-ui'
// 除了引⼊所需的组件,还需要⼿动引⼊组件样式
// app.js
import 'taro-ui/dist/style/index.scss' // 全局引⼊⼀次即可
美化图书列表⻚
import { AtCard } from "taro-ui";
class _C extends Taro.Component {
config = {
onReachBottomDistance: 100
};
render() {
const { books } = this.data;
return (
<Block>
<Text>mp/pages/booksList/booksList.wxml</Text>
{books.map((item, index) => {
return (
<AtCard extra={index} title={item.title} thumb={item.image}>
{item.summary}
</AtCard>
);
})}
</Block>
);
}
}
⼩程序⽀付
微信⽀付发起API⽂档:
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/payment/wx.requestPayment.h
tml
wx.requestPayment(Object object)
...
wx.requestPayment({
timeStamp: '',
nonceStr: '',
package: '',
signType: 'MD5',
paySign: '',
success (res) { },
fail (res) { }
})
⽀付所需要⽤到的配置:
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=3_1#
- APPID:appid
appid是微信⼩程序后台APP的唯⼀标识,在⼩程序后台申请⼩程序账号后,微信会⾃动分配
对应的appid,⽤于标识该应⽤。可在⼩程序–>设置–>开发设置中查看。 - 微信⽀付商户号:mch_id
商户申请微信⽀付后,由微信⽀付分配的商户收款账号 - API密钥:key
交易过程⽣成签名的密钥,仅保留在商户系统和微信⽀付后台,不会在⽹络中传播。商户妥
善保管该Key,切勿在⽹络中传输,不能在其他客户端中存储,保证key不会被泄漏。商户可
根据邮件提示登录微信商户平台进⾏设置。也可按以下路径设置:微信商户平台
(pay.weixin.qq.com)–>账户设置–>API安全–>密钥设置 - Appsecret: secret
AppSecret是APPID对应的接⼝密码,⽤于获取接⼝调⽤凭证时使⽤。
字段解释:
- AppID (个⼈号不可以)
申请⼩程序账号⽂档:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter
=7_11&index=2
⼩程序申请认证
wx.requestPayment(Object object)
…
wx.requestPayment({
timeStamp: ‘’,
nonceStr: ‘’,
package: ‘’,
signType: ‘MD5’,
paySign: ‘’,
success (res) { },
fail (res) { }
})
档:https://developers.weixin.qq.com/miniprogram/introduction/#%E5%B0%8F%E7%A
8%8B%E5%BA%8F%E7%BB%91%E5%AE%9A%E5%BE%AE%E4%BF%A1%E5%BC%80%E6
%94%BE%E5%B9%B3%E5%8F%B0%E5%B8%90%E5%8F%B7 - 商户号
商户平台申请地址:https://pay.weixin.qq.com/index.php/core/home/login?return_url=%
2F
微信⽀付商户号,获取商户号和商户密钥在微信⽀付商户管理平台中,【账户中⼼】→【商户信
息】 下可以获取微信⽀付商户号。
在【账户中⼼】 ‒> 【API安全】 下可以设置商户密钥
⼩程序⽀付发起流程:
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=23_9&index=1#menu1.1
举个栗⼦:
⽤户⼩明在某电商⼩程序上购买⼀块肥皂,从浏览、下单到⽀付经历了什么样的过程呢?
- 打开电商⼩程序,搜索浏览到某雕肥皂,点击查看详情后,发现⼤⼩、丝滑程度都很合适,点击直接下单
- 肥皂的价格:0.01元
- wx.login获取⽤户临时登录凭证code,发送到后端服务器换取openId
- 在下单时,⼩程序需要将⼩明购买的商品Id,商品数量,以及⼩明这个⽤户的openId传送到服务器
- 服务器在接收到商品Id、商品数量、openId后,⽣成服务期订单数据,同时经过⼀定的签名算法,向微信⽀付发送请求,获取预付单信息(prepay_id),同时将获取的数据再次进⾏相应规则的签名,向⼩程序端响应必要的信息(必须字段信息将在下⽂进⾏详细说明)
- ⼩程序端在获取对应的参数后,调⽤wx.requestPayment()发起微信⽀付,唤醒⽀付⼯作台,进⾏⽀付
云开发⽀付
博客:
1.借助⼩程序云开发实现⼩程序⽀付功能
https://www.jianshu.com/p/ddccf5f95e8c
2.⼩程序⽀付003~借助云开发10⾏代码快速实现⼩程序⽀付
https://blog.csdn.net/qiushi_1990/article/details/106679387
代码发布
https://developers.weixin.qq.com/miniprogram/introduction/#%E6%8F%90%E4%BA%A4%E5%AE
%A1%E6%A0%B8
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)