node使用支付宝沙箱模拟支付-好文

news2024/9/20 22:57:09

首页打开支付宝官方进行登录:

支付宝开放平台 (alipay.com)

下载支付宝提供的秘钥转化工具:

密钥工具下载 - 支付宝文档中心 (alipay.com)

打开工具生成密码:

然后在支付宝页面配置秘钥

开始配置node

  • npm init -y初始化,再npm i express跟npm i alipay-sdk,再配置app.js基础配置

const express = require('express')
const app = express()


app.get('/', (req, res) => {
    res.send('hello world')
})

app.listen(3003, () => {
    console.log('server is runing on 3003')
})
  • 新建alPay.js文件配置沙箱

const AlipaySdk = require('alipay-sdk').default

// 普通公钥模式
const alipaySdk = new AlipaySdk({
    // APPID
    appId: '2021000122620106',
    //签名算法
    signType:'RSA2',
    //支付宝网关
    gateway:'https://openapi.alipaydev.com/gateway.do',
    //应用私钥
    privateKey: '',
    //支付宝公钥
    alipayPublicKey:'',

})
module.exports = alipaySdk

这里我踩了个坑,应用私钥需要再次转化格式才行,不然就会报错

转化方法如下:将生成的私钥复制到图二进行转化,然后将转化的私钥复制到node中

  • 在app.js中引用alPay.js

const express = require('express')
const app = express()
//引入支付宝沙箱
const alipaySdk = require('./utils/aliPay')
const AlipayFormData = require('alipay-sdk/lib/form').default

//支付接口
app.post('/pay', (req, res) => {
    const formData = new AlipayFormData();
    //调用get方法
    formData.setMethod('get')
    formData.addField('bizContent', {
        outTradeNo: 123487858, //订单ID
        productCode: 'FAST_INSTANT_TRADE_PAY', //固定的
        totalAmount: 10, //金额
        subject: '测试' //订单标题
    })
    // 支付成功或者失败
    formData.addField('returnUrl', 'https://www.baidu.com/') //支付成功回调地址
    const result = alipaySdk.exec(
        'alipay.trade.page.pay', //统一收单、下单、支付页面接口
        {},
        {
            // 通过 formData 设置请求参数
            formData: formData,
        }
    )
    result.then(resp => {
        res.send({
            data: {
                code: 200,
                success: 'ture',
                paymentUrl: resp
            }
        })
    })
})

app.get('/', (req, res) => {
    res.send('hello world')
})

app.listen(3003, () => {
    console.log('server is runing on 3003')
})
  • 用postman进行测试,得到paymentUrl地址,然后在浏览器中打开就行了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/391692.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

<Linux>进程间通信--管道

前言😃😃😃进程间通信的方式管道 - Linux原生提供2SystemV - 多线程单机通信posix - 多线程网络通信这里我们主要是介绍一下管道一、生活和计算机中的管道😜生活中的管道特点都是有出口和入口的都是单向传输内容的(例如&#xff1…

雨水情测报设施包含哪些设备?

通常雨水情测报及大坝安全监测设施,主要包括:大坝安全监测终端、雨水情监测终端、GNSS监测站、雷达水位计、大坝安全监测平台、雨水情测报系统平台等产品。雨水情测报及大坝安全监测系统方案解决方案雨水情测报及大坝安全监测系统解决方案,主…

华为OD机试题,用 Java 解【字符串加密】问题

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不…

Raft图文详解

Raft图文详解 refer to: Raft lecture (Raft user study) - YouTube Raft PDF Raft算法详解 - 知乎 (zhihu.com) 今天来详细介绍一下Raft协议 Raft是来解决公式问题的协议,那么什么是共识呢? 在分布式系统里面,consensus指的是多个节点对…

UEFI移植LVGL

自己组装过游戏主机的应该都有看到过,进入BIOS设置,酷炫的界面便呈现在眼前,而很多BIOS,使用的还是标准的界面。现在有个趋势,phoenix和insyde也在慢慢朝这种GUI界面发展,而AMI的使用C编写的界面已经非常完…

spring学习3.5

Bean是什么 Spring里面的Bean就类似是定义的一个组件,而这个组件的作用就是实现某个功能的,这里所定义的Bean就相当于给了你一个更为简便的方法来调用这个组件去实现你要完成的功能。 IoC是什么 谁控制谁,控制什么? 传统Java SE程…

11.SpringSecurity基于JWT实现Token的处理

SpringSecurity基于JWT实现Token的处理 前面介绍了手写单点登录和JWT的应用,本文结合SpringSecurity来介绍下在SpringBoot项目中基于SpringSecurity作为认证授权框架的情况下如何整合JWT来实现Token的处理。 一、认证思路分析 SpringSecurity主要是通过过滤器来实现…

【JavaWeb】从输入URL到展示出页面的过程

目录 DNS域名解析 检查hosts文件 查询缓存 查询本地DNS服务器 ​编辑查询根域名服务器等 三次握手建立连接 发送请求 响应请求 页面渲染 断开连接 这些过程简单的理解为先找到某人地址,给他发送消息可以去他家拿东西吗?他同意后拿到他的东西在…

33- PyTorch实现分类和线性回归 (PyTorch系列) (深度学习)

知识要点 pytorch最常见的创建模型的方式, 子类 读取数据: data pd.read_csv(./dataset/credit-a.csv, headerNone) 数据转换为tensor: X torch.from_numpy(X.values).type(torch.FloatTensor) 创建简单模型: from torch import nn model nn.Sequential(nn.Linear(15, 1…

Dockerfile简单使用入门

什么是 Dockerfile? Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 docker build命令用于从Dockerfile构建映像。可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile。 例如&#xff1…

亚马逊电动水泵UL778测试报告

电动水泵UL778如何办理? 近期亚马逊在3C品类吹的风可够大的,严查起UL测试报告了。许多卖家反映收到相关邮件通知,产品也由于在规定时间内无法提供UL测试报告,出现被暂停销售、listing被下架等问题。 从亚马逊此次的动作来看&…

深度学习卷积神经网络CNN之 VGGNet模型主vgg16和vgg19网络模型详解说明(理论篇)

1.VGG背景 2. VGGNet模型结构 3. 特点(创新、优缺点及新知识点) 一、VGG背景 VGGNet是2014年ILSVRC(ImageNet Large Scale Visual Recognition Challenge大规模视觉识别挑战赛)竞赛的第二名,解决ImageNet中的1000类图…

Padloc:一个直观的开源密码管理器

让我们了解一下这个具有令人愉悦的用户界面、跨平台可用的开源密码管理器。有大量适用于个人和团队的免费的和收费的密码管理器。然而,当谈到开源方案时,它通常仅限于几个好的方案,如 Seahorse、KeePassXC 和 Bitwarden。如果你已阅读过我们的…

【浅学Java】InnoDB存储引擎下MVCC(多版本并发控制 )

TOC 1. MVCC是什么 MVCC是面试中比较常见的一个问题,那么什么是MVCC机制,它的作用是什么? 它的英文全称是 Multi-Version Concurrency Control ,也就是“多版本并发控制”的意思。在MySQL InnoDB存储引擎下,RC、RR就…

DBeaver 超级详细的安装与使用

一、下载DBeaver DBeaver是一种通用数据库管理工具,适用于需要以专业方式使用数据的每个人;适用于开发人员,数据库管理员,分析师和所有需要使用数据库的人员的免费(DBeaver Community) 的多平台数据库工具。 DBeaver支持80多个数据…

Redis学习(四):三种特殊类型及常用操作

geospatial (地理位置) 查询经纬度网站 添加位置GEOADD 两极无法直接添加,我们一般会下载城市数据,通过java程序导入 可以看到这个命令也支持一次性添加多个。 获取位置GEOPOS 获取两点之间距离 GEODIST 默认单位是m&#xff0c…

MySQL面试题-锁相关

目录 1.MySQL 锁的类型有哪些呢? 2.如何使用全局锁 3.如果要全库只读,为什么不使用set global readonlytrue的方式? 4.表级锁和行级锁有什么区别? 5.行级锁的使用有什么注意事项? 6.InnoDB 有哪几类行锁&#xff…

上海亚商投顾:沪指震荡调整 酒店等消费股逆势活跃

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。市场情绪沪指今日震荡盘整,创业板指V型反弹,上证50跌超1%,保险、银行、券商等金融股下挫。…

Peppol的发展史和基本框架

Peppol(Pan-European Public Procurement Online)是欧洲区域内的一个跨境公共采购电子商务平台试点项目,由欧盟委员会和Peppol联盟成员国共同资助建立,旨在通过制定标准化框架,推动欧盟成员国在公共采购相关的电子目录…

如何优化棋牌游戏服务器网络带宽

随着在线棋牌游戏的普及,如何提升游戏服务器的性能成为了一个重要的话题。高性能的独立服务器可以保证游戏的稳定性和流畅度,提高玩家的游戏体验,从而带来更多的收益。其中,优化网络带宽是保证棋牌游戏服务器稳定性和流畅度的关键…