Electron-vue开发的客户端支付收款工具的实现


Posted in Javascript onMay 24, 2019

目前实现了支付宝当面付的扫码支付功能、二维码支付功能,即主动扫和被动扫。测试请使用支付宝沙箱环境,支付宝是沙箱版。

最终效果如下:

Electron-vue开发的客户端支付收款工具的实现

Electron-vue开发的客户端支付收款工具的实现

前端页面使用阿里的组件,ant-design-vue

通过node,使用nedb内存数据库进行本地数据存储

Electron-vue开发的客户端支付收款工具的实现

安装文件支持自定义。生成的exe,安装过程如下

Electron-vue开发的客户端支付收款工具的实现

程序代码简述

Electron-vue开发的客户端支付收款工具的实现

main.js

import devtools from '@vue/devtools'
import Vue from 'vue'
import axios from 'axios'

import App from './App'
import router from './router'
import store from './store'
import db from './nedb'//订单表

import Antd from 'ant-design-vue'
import 'ant-design-vue/dist/antd.css'
import alipayhelper from './alipayhelper'

import moment from 'moment'//导入文件

Vue.prototype.$moment = moment;//赋值使用
Vue.prototype.$db = db
Vue.prototype.alipayhelper = alipayhelper;
Vue.use(Antd)

if (!process.env.IS_WEB) Vue.use(require('vue-electron'))
Vue.http = Vue.prototype.$http = axios
Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
 components: { App },
 router,
 store,
 template: '<App/>'
}).$mount('#app')

alipayhelper.js 里存储的支付宝收款方的APPID,pem路径下应用私钥。这些信息可以通过阿里官方申请,即可以在线收款

const path = require('path');
const fs = require('fs');
const moment = require('moment');
const crypto = require('crypto');
const electron = require('electron');
const dataPath = (electron.app || electron.remote.app).getPath('userData');
const home = (electron.app || electron.remote.app).getPath('home');
const appData = (electron.app || electron.remote.app).getPath('appData');
let ALI_PAY_SETTINGS = {
  APP_ID: '2016100100638328',
  APP_GATEWAY_URL: 'http://localhost',//用于接收支付宝异步通知
  AUTH_REDIRECT_URL: 'xxxxxxx',//第三方授权或用户信息授权后回调地址。授权链接中配置的redirect_uri的值必须与此值保持一致。
  //__dirname 获取当前目录,无法在生产模式assr 获取到路径
  /* APP_PRIVATE_KEY_PATH: path.join(__dirname, 'pem', 'rsa_private_key.pem'),//应用私钥
  APP_PUBLIC_KEY_PATH: path.join(__dirname, 'pem', 'rsa_public_key.pem'),//应用公钥
  ALI_PUBLIC_KEY_PATH: path.join(__dirname, 'pem','ali_rsa_public_key.pem'),//阿里公钥*/
  APP_PRIVATE_KEY_PATH: path.join(__static, '/pem/rsa_private_key.pem'),//应用私钥
  APP_PUBLIC_KEY_PATH: path.join(__static, '/pem/rsa_public_key.pem'),//应用公钥
  ALI_PUBLIC_KEY_PATH: path.join(__static, '/pem/ali_rsa_public_key.pem'),//阿里公钥
  AES_PATH: path.join(__dirname, 'pem', 'remind', 'sandbox', 'aes.txt'),//aes加密(暂未使用)
  ALI_GATEWAY_URL: 'https://openapi.alipaydev.com/gateway.do?',//用于接收支付宝异步通知
};

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
让iframe框架网页在任何浏览器下自动伸缩
Aug 18 Javascript
如何确保JavaScript的执行顺序 之实战篇
Mar 03 Javascript
javascript 通用loading动画效果实例代码
Jan 14 Javascript
window resize和scroll事件的基本优化思路
Apr 29 Javascript
JavaScript中实现异步编程模式的4种方法
Sep 24 Javascript
基于JavaScript的操作系统你听说过吗?
Jan 28 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
Mar 01 Javascript
js实现StringBuffer的简单实例
Sep 02 Javascript
jQuery实现定时隐藏对话框的方法分析
Feb 12 jQuery
JavaScript实现京东购物放大镜和选项卡效果的方法分析
Jul 05 Javascript
Node配合WebSocket做多文件下载以及进度回传
Nov 07 Javascript
JS代码实现页面切换效果
Jan 10 Javascript
JS实现判断数组是否包含某个元素示例
May 24 #Javascript
JS实现查找数组中对象的属性值是否存在示例
May 24 #Javascript
jQuery中使用validate插件校验表单功能
May 24 #jQuery
echarts多条折线图动态分层的实现方法
May 24 #Javascript
Echarts动态加载多条折线图的实现代码
May 24 #Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
May 24 #Javascript
微信小程序wepy框架学习和使用心得详解
May 24 #Javascript
You might like
用Flash图形化数据(一)
2006/10/09 PHP
PHP_MySQL教程-第一天
2007/03/18 PHP
PHP中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
PHP中关键字interface和implements详解
2017/06/14 PHP
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
告诉你什么是javascript的回调函数
2014/09/04 Javascript
js动态创建及移除div的方法
2015/06/03 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
Javascript 函数的四种调用模式
2016/11/05 Javascript
JS重载实现方法分析
2016/12/16 Javascript
移动端使用localResizeIMG4压缩图片
2017/04/22 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
2019/11/01 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
微信小程序实现点击导航条切换页面
2020/11/19 Javascript
[47:43]完美世界DOTA2联赛PWL S3 Magama vs GXR 第二场 12.19
2020/12/24 DOTA
Python 字典(Dictionary)操作详解
2014/03/11 Python
Python守护进程(daemon)代码实例
2015/03/06 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
2016/06/29 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
2020/05/25 Python
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
优秀毕业自我鉴定
2014/02/15 职场文书
煤矿安全生产责任书
2014/04/15 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
经典祝酒词大全
2015/08/12 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
求职自我评价参考范文
2019/05/16 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书
详解Django的MVT设计模式
2021/04/29 Python
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python