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 相关文章推荐
js 匿名调用实现代码
Jun 19 Javascript
javascript中的变量作用域以及变量提升详细介绍
Oct 24 Javascript
Javascript检查图片大小不要让大图片撑破页面
Nov 04 Javascript
jQuery基础语法实例入门
Dec 23 Javascript
jquery判断单选按钮radio是否选中的方法
May 05 Javascript
vue使用watch 观察路由变化,重新获取内容
Mar 08 Javascript
Angular.js中$resource高大上的数据交互详解
Jul 30 Javascript
vue中vee validate表单校验的几种基本使用
Jun 25 Javascript
详解webpack打包第三方类库的正确姿势
Oct 20 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
May 27 Javascript
vue实现数字动态翻牌的效果(开箱即用)
Dec 08 Javascript
vue 项目软键盘回车触发搜索事件
Sep 09 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
20个PHP常用类库小结
2011/09/11 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
2020/08/17 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
javascript 文档的编码问题解决
2009/03/01 Javascript
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
2012/12/26 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
EasyUI创建对话框的两种方式
2016/08/23 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
老生常谈jquery id选择器和class选择器的区别
2017/02/12 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
如何修改Vue打包后文件的接口地址配置的方法
2020/04/22 Javascript
[16:56]教你分分钟做大人:司夜刺客
2014/10/30 DOTA
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
2019/07/18 HTML / CSS
ReVive利维肤美国官网:RéVive Skincare
2018/04/18 全球购物
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
运动会开幕式邀请函
2014/01/22 职场文书
个人自我评价和职业目标
2014/01/24 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
婚庆公司开业主持词
2015/06/30 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电
Python 循环读取数据内存不足的解决方案
2021/05/25 Python
Python中文纠错的简单实现
2021/07/07 Python
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL
mysql创建存储过程及函数详解
2021/12/04 MySQL