首先说明一下最终实现的效果:===>用户上传excel文件====>网页端显示读取文件并显示预览效果====>上传文件至服务器,服务器后台开始调用接口自动转账===>所有转账信息存储到数据库中,失败信息返回到网页上。

上一篇已经大致将支付接口实现了,这一篇将介绍如何和Django后台连接起来使用,在项目中使用的是excel文件储存转账信息的,所以我们首先需要了解如何读取Excel文件,然后才是进行转账操作,django则是提供网页服务,接收用户上传excel文件,保存交易信息等等。

1.网页端的预览:
    
 选择上传文件后需要将文件内容读取并显示出来,方便确认信息是否有误后在上传,这里主要是通过JS读取文件内容,然后再把数据以表格的形式展现出来。这里用到了一个一个xlsx插件

//文件读取
<script src="http://oss.sheetjs.com/js-xlsx/xlsx.full.min.js"></script>
<script>/*FileReader共有4种读取方法:1.readAsArrayBuffer(file):将文件读取为ArrayBuffer。2.readAsBinaryString(file):将文件读取为二进制字符串3.readAsDataURL(file):将文件读取为Data URL4.readAsText(file, [encoding]):将文件读取为文本,encoding缺省值为'UTF-8'*/var wb;//读取完成的数据var rABS = false; //是否将文件读取为二进制字符串function importf(obj) {//导入if (!obj.files) {return;}var f = obj.files[0];var reader = new FileReader();reader.onload = function (e) {var data = e.target.result;if (rABS) {wb = XLSX.read(btoa(fixdata(data)), {//手动转化type: 'base64'});} else {wb = XLSX.read(data, {type: 'binary'});}//wb.SheetNames[0]是获取Sheets中第一个Sheet的名字//wb.Sheets[Sheet名]获取第一个Sheet的数据document.getElementById("preview").innerHTML = XLSX.utils.sheet_to_html(wb.Sheets[wb.SheetNames[0]]);};if (rABS) {reader.readAsArrayBuffer(f);} else {reader.readAsBinaryString(f);}}function fixdata(data) { //文件流转BinaryStringvar o = "",l = 0,w = 10240;for (; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)));o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)));return o;}
</script>

HTML部分:

<form method="post" action="" id="upload_form" enctype="multipart/form-data"><div style="height: 40px;"><input id="uploadFile" type="file" onchange="importf(this)" style="display: inline-block;"name="payment"/><button id="upload" style="height: 32px">上传文件</button></div><div style="border: 1px solid #3b8fc5;border-radius: 5px;height: 500px;position: relative;overflow: auto;text-align:center;vertical-align: middle;"id="preview"><p style="color: #c1c1c1">文件预览</p></div>
</form>

最终效果:

2.Excel文件上传和保存:
   
通过Ajax提交form表单数据到后台,Ajax操作没什么可说的了,需要注意的是form 的enctype属性值,来看一下W3C上面的介绍


因此我们在上传文件的时候要用enctype="multipart/form-data"

前端发送文件了接下来就是后端接收文件了,文件数据会包含在request.FILES里面(注意,只有当request方法为POST并且form 的enctype属性值为multipart/form-data的时候request.FILES才会有数据)
request.FILES中包含下面几个属性:name(文件名)、size(文件大小)、content_type(文件类型)、read()读取整个文件、chunks()返回一个生成器对象

file = request.FILES.get('payment', None)
f = open(file.name, 'wb')
for chunck in file.chunks():f.write(chunck)
f.close()

    至此文件就保存下来了,文件名就是上传的文件名,路径默认为根路径

转载于:https://www.cnblogs.com/FanMLei/p/10501016.html

Django支付宝自动转账功能(一)相关推荐

  1. Django支付宝自动转账功能(二)

    接着上一篇的介绍,这部分将介绍如何读取上传的文件并调用转账接口实现转账功能. 具体步骤   ===>打开文件  ===>读取每一行的数据 ===>调用支付宝单笔转账接口 1.Exce ...

  2. 火山安卓开发支付宝自动转账功能

    火山安卓开发支付宝自动转账功能 首先你们需要准备火山安卓的无障碍和Root开发框架 点击下载无障碍和Root开发框架 下载完成后,需要更改里面的Root模拟点击坐标的位置 更改位置后,点击编译(注意: ...

  3. python支付宝自动转账_Django支付宝自动转账功能(二)

    接着上一篇的介绍,这部分将介绍如何读取上传的文件并调用转账接口实现转账功能. 具体步骤   ===>打开文件  ===>读取每一行的数据 ===>调用支付宝单笔转账接口 1.Exce ...

  4. python支付宝自动转账_Django支付宝自动转账功能(一)

    首先说明一下最终实现的效果:===>用户上传excel文件====>网页端显示读取文件并显示预览效果====>上传文件至服务器,服务器后台开始调用接口自动转账===>所有转账信 ...

  5. 支付宝 自动发货 php,Ecshop实现支付宝自动发货功能

    本文主要讲述的是Ecshop实现支付宝自动发货功能,结合实例形式分析了Ecshop实现支付宝自动发货功能的相关代码修改与接口操作代码功能与修改技巧,需要的朋友不妨参考借鉴下,下面来一起看看吧. 一.在 ...

  6. PayCloud 支付宝支付转账功能发布 V1.0

    ‍‍ 通用场景 单笔转账接口是基于支付宝的资金处理能力,为了满足支付宝商家的转账需求,针对有部分开发能力的商家,提供通过API接口完成企业自身支付宝账户到支付宝账户的转账功能.适用于:C2C现金红包的 ...

  7. python支付宝自动转账_python实现支付宝转账接口

    python实现支付宝转账接口 发布时间:2020-09-14 03:23:42 来源:脚本之家 阅读:128 由于工作需要使用python开发一个自动转账接口,记录一下开发过程. 首先需要在蚂蚁金服 ...

  8. 如何测试支付宝的转账功能

    功能+专项测试功能测试: 先用场景法梳理出转账的基本流程 打开支付宝,点击"转账",输入转账账户,输入转账金额,点击"转账"观察收款账户是否到账 打开支付宝,点 ...

  9. tp5接支付宝单笔转账功能

    1.下载php对应的SDK 2.创建文件SetOrder.php放在application/common下面:代码如下 <?php namespace app\common; use think ...

最新文章

  1. 线性霍尔传感器SS495、A1308、A1302
  2. 关于扫描仪——你不知道的秘密
  3. 如何“主动出击”提升网站的收录速度?
  4. ECCV2020 收录论文汇总(持续更新中)附打包下载
  5. 解决WebBrowser控件会导致应用程序占用内存居高不下问题
  6. 《转》CXF WebService 开发文档-目录索引
  7. Matlab元胞数组操作
  8. 支撑全网70%世界杯流量 盘点世界杯直播背后的阿里云黑科技
  9. Badger DAO 将在 DIGG 启动后开放三个新机枪池
  10. mysql 动态hash_Mysql 自定义HASH索引带来的巨大性能提升
  11. Linux C++ socket编程实例
  12. html如何设置整体字体颜色,html字体颜色 html如何设置字体颜色
  13. VUE 文字转语音播放
  14. 彩色图rgb转换成灰色图
  15. Typora恢复文件,找回忘记保存的记录
  16. 所见即所得的 Markdown 编辑器
  17. 如何在自己行业内放大和增加收入
  18. tensorflow输出的人脸图片经过OpenCV write的图片是蓝色的问题的解决方案
  19. 阿里巴巴获得商品详情 API 返回值说明
  20. 量子计算机没有热量,最新研究:量子气体不会带走热量

热门文章

  1. shell的算术运算
  2. C语言博客作业---嵌套循环
  3. 清除stoped impdp/expdp job的方法
  4. oracle 在 Linux下安装环境配置
  5. 公众服务常用电话号码大全
  6. Linux之/etc/group文件
  7. c++编译器对类的处理
  8. ShareREC SDK(iOS) 专用快速集成组件
  9. Web下的整体测试 --性能测试及优化思路
  10. MapReduce的模式、算法和用例