tp6 关于微信小程序的一个转账demo
这里我的转账是使用的事务,并没有使用队列
控制器
<?php
declare (strict_types = 1);namespace app\week2\controller;use app\BaseController;
use app\week2\model\Transfer_log;
use app\Week2\model\User;
use app\week2\model\Wxuser;use think\facade\Db;
use think\Response;class Financial extends BaseController
{/*** Notes:用户财务页面初始查询*/public function index(){// 接收id$id = $this->request->id;//根据id 查询用户信息$oneData = Wxuser::where('id',$id)->find();if ($oneData){return Response::create(['code'=>200,'msg'=>'请求成功','data'=>$oneData],'json');}else{return Response::create(['error_code'=>500,'msg'=>'请求失败','data'=>''],'json');}}/*** Notes:转账记录生成*/public function create(){$params =$this->request->param();$params['u_id'] = $this->request->id;$userOne = Wxuser::where('id',$params['u_id'])->find();$userTwo = Wxuser::where('phone',$params['phone'])->find();//将接收到的值添加Db::startTrans();try {//Wxuser::where('id',$params['u_id'])->save(['price'=>$params['price']]);//Db::table('wxuser')->where('id',$params['u_id'])->dec('money',5)->update();Wxuser::where('id',$params['u_id'])->save(['money'=>$userOne['money']-$params['price']]);Wxuser::where('phone',$params['phone'])->save(['money'=>$userTwo['money']+$params['price']]);Transfer_log::create($params);Db::commit();return Response::create(['code'=>200,'msg'=>'支付成功','data'=>''],'json');}catch (\Exception $e){Db::rollback();return Response::create(['code'=>500,'msg'=>'异常捕获','data'=>$e],'json');}}
}
关于控制器的代码就这么一点,然后是小程序
账户余额页面,使用的是lin-ui,这个团队小程序的ui写的挺不错的,感兴趣的可以去看一下https://doc.mini.talelin.com/start/
<!--pages/my/my.wxml-->
<view class="title">
账户余额
<view class="money">${{money}}</view>
</view>
<l-grid l-class="grid" row-num="4" show-col-border="{{true}}"><l-grid-item wx:for="{{grids2}}" wx:key="{{index}}" key="{{index}}" slot="{{index}}" bind:linitemtap="grid"><l-icon name="{{item.image}}" /><view class="text">{{item.text}}</view></l-grid-item>
</l-grid>
// pages/my/my.js
import cache from '../../utils/Cache'
Page({/*** 页面的初始数据*/data: {money:'',grids2:[{'image':'add','text':'提现'},{'image':'add','text':'转账'},{'image':'add','text':'充值'},{'image':'add','text':'银行卡'}]},grid(e){let key = e.detail.indexif(key == 1){wx.navigateTo({url: '/pages/read/read',})}},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {wx.request({url: 'http://www.tp.com/week2/userIndex',header:{'token':cache.get('token')},success:res=>{this.setData({money:res.data.data.money})}})},/*** 生命周期函数--监听页面初次渲染完成*/onReady: function () {},/*** 生命周期函数--监听页面显示*/onShow: function () {},/*** 生命周期函数--监听页面隐藏*/onHide: function () {},/*** 生命周期函数--监听页面卸载*/onUnload: function () {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh: function () {},/*** 页面上拉触底事件的处理函数*/onReachBottom: function () {},/*** 用户点击右上角分享*/onShareAppMessage: function () {}
})
{"usingComponents": {"l-grid":"/miniprogram_npm/lin-ui/grid","l-grid-item":"/miniprogram_npm/lin-ui/grid-item","l-icon":"/miniprogram_npm/lin-ui/icon"},"navigationBarTitleText": "财务管理"
}
/* pages/my/my.wxss */
.title
{text-align: center;
}.money{font-size: 20px;color: red;
}
转账页面
<!--pages/read/read.wxml-->
<l-form name="params" l-form-btn-class="l-form-btn-class" bind:linsubmit="submit"><l-form-item label="对方账户:" name="phone"><l-input id="phone" hide-label show-row="{{false}}"/></l-form-item><l-form-item label="金额:" name="price"><l-input id="price" hide-label show-row="{{false}}"/></l-form-item><view slot="submit"><l-button>下一步</l-button></view>
</l-form>
// pages/read/read.js
Page({/*** 页面的初始数据*/data: {},submit(event){const {detail} = event;let params = detail.valuesconsole.log(params)wx.navigateTo({url: '/pages/particulars/particulars?phone='+params['phone']+'&price='+params['price'],})},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {wx.lin.initValidateForm(this)},})
/* pages/read/read.wxss */.l-form-btn-class{display: flex;justify-content: space-around;margin-top: 10rpx;
}
{"usingComponents": {"l-form":"/miniprogram_npm/lin-ui/form","l-form-item":"/miniprogram_npm/lin-ui/form-item","l-input":"/miniprogram_npm/lin-ui/input"},"navigationBarTitleText": "转账"
}
下篇地址
tp6 关于微信小程序的一个转账demo相关推荐
- 微信小程序编写一个试卷demo
最近写项目需要有一个试卷功能,作为初学者一头雾水,网上找了些资料.非常感谢 才华横溢吴道简 大佬写的答题小程序.参考了大佬的文章,自己做了一点点修改.欢迎大佬指点.原文链接:http://t.csdn ...
- android商品数量加减,微信小程序实现一个简单的商品数量加减案例
简介 这是一个用微信小程序原生代码实现的数量加减demo,主要是用于商品购物车或者商品详情修改数量使用,很简单哦~~~. 核心js方法说明addCount(增加数量) delCount (减少数量) ...
- 3元购买微信小程序解决方案一个月
3元购买微信小程序解决方案一个月 参考文章: (1)3元购买微信小程序解决方案一个月 (2)https://www.cnblogs.com/wqcheng/p/7458808.html 备忘一下.
- 微信小程序开发一个小型商城(八、个人页面)
上一篇文章:微信小程序开发一个小型商城(七.支付页面) 在上方还是使用wx:if进行判断是否有登录的数据,有的话将数据当中的图片和名字渲染到页面当中,不存在的话使用一个登录按钮表示需要用户登录.往下分 ...
- 微信小程序,一个有局限的类似 React Native 轮子
微信小程序就是一个类似RN的轮子,可以快速开发,有一定的适用场景,但是也有其局限性.(结论是基于微信小程序的示例代码做的解读,可能存在谬误. 文末有好奇心日报小程序的二维码,欢迎围观. 2016年11 ...
- 微信小程序,一个有局限的类似 React Native 轮子!
微信小程序就是一个类似RN的轮子,可以快速开发,有一定的适用场景,但是也有其局限性.(结论是基于微信小程序的示例代码做的解读,可能存在谬误. 文末有好奇心日报小程序的二维码,欢迎围观. 2016年11 ...
- PHP进度条 小程序,用微信小程序实现一个圆形的进度条
随着小程序的热度下降,更多的人已经开始静下心来开发微信小程序了,最近在开发一款微信小程序的过程中遇到了一个问题:如何用微信小程序实现一个圆形的进度条?整理一番后,记录下来与大家共享. 代码实现的思路原 ...
- 微信小程序实现一个文件管理器
微信小程序实现一个文件管理器 虽然标题说是实现一个文件管理器,但我是用来管理预加载小程序可能用的网络资源的,尤其是要是用音效资源时. 小程序的包体即便是分包也是每个分包的资源大小是2m,像音频资源,使 ...
- 微信小程序开发一个小型商城(四、商品列表)
上一篇文章,微信小程序开发一个小型商城(三.商品分类设计) 在从上一个界面跳转过来,会看到商品列表这个界面:如下图所示: 页面分析:从上到下:分别是一个已经定义好的自定义组件,下面的综合,销量,也是一 ...
最新文章
- 《深入浅出Windows Phone 8应用开发》
- 高逼格的 SQL 写法:行行比较,别问为什么,问就是逼格高。。
- Photoshop 隐藏的快捷键
- java超市管理系统项目,HR的话扎心了
- ajax post forbidden,POST方法总是返回403 Forbidden
- 什么是自然语言处理,它如何工作?
- Vim文本编辑器 指令大全(二)
- 国籍 mysql_国籍表SQL,按首字母升序排序
- 进程kswapd0与events/0消耗大量CPU的问题
- 基于java SSM springboot景区行李寄存管理系统设计和实现
- c 结构体转byte_C中结构体和字节流的互换及内存对齐
- vscode 配置python_VSCode配置Python版本
- php登陆注册加密函数,php加密函数_php用户自定义加密函数
- 根据城市的名称获取省份的名称
- 纤亿通谈-单模和多模光纤跳线有哪些不同之处?
- php网站的难点,PHP开发有哪些难点
- HAProxy代理后端服务取真实IP
- 数据结构(一):数据结构的概述
- 拥抱 Android Studio 之四:Maven 仓库使用与私有仓库搭建
- Microsoft Visual Studio Installer Projects下载缓慢下载不动的解决办法