这里我的转账是使用的事务,并没有使用队列

控制器

<?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相关推荐

  1. 微信小程序编写一个试卷demo

    最近写项目需要有一个试卷功能,作为初学者一头雾水,网上找了些资料.非常感谢 才华横溢吴道简 大佬写的答题小程序.参考了大佬的文章,自己做了一点点修改.欢迎大佬指点.原文链接:http://t.csdn ...

  2. android商品数量加减,微信小程序实现一个简单的商品数量加减案例

    简介 这是一个用微信小程序原生代码实现的数量加减demo,主要是用于商品购物车或者商品详情修改数量使用,很简单哦~~~. 核心js方法说明addCount(增加数量) delCount (减少数量) ...

  3. 3元购买微信小程序解决方案一个月

    3元购买微信小程序解决方案一个月 参考文章: (1)3元购买微信小程序解决方案一个月 (2)https://www.cnblogs.com/wqcheng/p/7458808.html 备忘一下.

  4. 微信小程序开发一个小型商城(八、个人页面)

    上一篇文章:微信小程序开发一个小型商城(七.支付页面) 在上方还是使用wx:if进行判断是否有登录的数据,有的话将数据当中的图片和名字渲染到页面当中,不存在的话使用一个登录按钮表示需要用户登录.往下分 ...

  5. 微信小程序,一个有局限的类似 React Native 轮子

    微信小程序就是一个类似RN的轮子,可以快速开发,有一定的适用场景,但是也有其局限性.(结论是基于微信小程序的示例代码做的解读,可能存在谬误. 文末有好奇心日报小程序的二维码,欢迎围观. 2016年11 ...

  6. 微信小程序,一个有局限的类似 React Native 轮子!

    微信小程序就是一个类似RN的轮子,可以快速开发,有一定的适用场景,但是也有其局限性.(结论是基于微信小程序的示例代码做的解读,可能存在谬误. 文末有好奇心日报小程序的二维码,欢迎围观. 2016年11 ...

  7. PHP进度条 小程序,用微信小程序实现一个圆形的进度条

    随着小程序的热度下降,更多的人已经开始静下心来开发微信小程序了,最近在开发一款微信小程序的过程中遇到了一个问题:如何用微信小程序实现一个圆形的进度条?整理一番后,记录下来与大家共享. 代码实现的思路原 ...

  8. 微信小程序实现一个文件管理器

    微信小程序实现一个文件管理器 虽然标题说是实现一个文件管理器,但我是用来管理预加载小程序可能用的网络资源的,尤其是要是用音效资源时. 小程序的包体即便是分包也是每个分包的资源大小是2m,像音频资源,使 ...

  9. 微信小程序开发一个小型商城(四、商品列表)

    上一篇文章,微信小程序开发一个小型商城(三.商品分类设计) 在从上一个界面跳转过来,会看到商品列表这个界面:如下图所示: 页面分析:从上到下:分别是一个已经定义好的自定义组件,下面的综合,销量,也是一 ...

最新文章

  1. 《深入浅出Windows Phone 8应用开发》
  2. 高逼格的 SQL 写法:行行比较,别问为什么,问就是逼格高。。
  3. Photoshop 隐藏的快捷键
  4. java超市管理系统项目,HR的话扎心了
  5. ajax post forbidden,POST方法总是返回403 Forbidden
  6. 什么是自然语言处理,它如何工作?
  7. Vim文本编辑器 指令大全(二)
  8. 国籍 mysql_国籍表SQL,按首字母升序排序
  9. 进程kswapd0与events/0消耗大量CPU的问题
  10. 基于java SSM springboot景区行李寄存管理系统设计和实现
  11. c 结构体转byte_C中结构体和字节流的互换及内存对齐
  12. vscode 配置python_VSCode配置Python版本
  13. php登陆注册加密函数,php加密函数_php用户自定义加密函数
  14. 根据城市的名称获取省份的名称
  15. 纤亿通谈-单模和多模光纤跳线有哪些不同之处?
  16. php网站的难点,PHP开发有哪些难点
  17. HAProxy代理后端服务取真实IP
  18. 数据结构(一):数据结构的概述
  19. 拥抱 Android Studio 之四:Maven 仓库使用与私有仓库搭建
  20. Microsoft Visual Studio Installer Projects下载缓慢下载不动的解决办法

热门文章

  1. C# WPF 3D正方体旋转
  2. tomcat打包war,jar部署
  3. c语言中5l是数值或字符常量,C语言练习题-选择题(带答案)
  4. JavaScript fetch() 方法
  5. python opencv关闭摄像头自动白平衡(white balance)
  6. Unicode的空白字符有哪些
  7. vue中在一个函数中调用另外一个函数
  8. 用C语言计算个人所得税
  9. 数据上传虚拟服务器,如何上传数据到虚拟主机
  10. autocad形源代码_在开放源代码库中使用AutoCAD文件格式