使用NodeJS+Vue3写支付宝网站支付Demo,接入支付宝

体验地址

NodeJS

本Demo使用express+mysql开发,

初始化项目

安装依赖

需要使用到的依赖如下

"devDependencies": {
    "alipay-sdk": "^3.1.6",
    "body-parser": "^1.19.0",
    "express": "^4.17.1",
    "mysql": "^2.18.1"
  },

使用npm install 安装,不多叙述

支付宝接入(沙箱环境)

此步骤需要在支付宝平台申请接入,需要有企业账号,
这里使用的是沙箱环境,
沙箱环境,仅需要支付宝账号即可.用于测试开发,可以使用沙箱支付宝APP来进行支付,

进入开放管理平台https://openhome.alipay.com/platform/developerIndex.htm

选择开发服务中的研发服务,即可进入沙箱环境

在这里插入图片描述
点击设置RSA2密钥在这里插入图片描述
我们可以使用支付宝提供的工具来生成公钥私钥
直接点击下方连接即可进入支付宝提供的在线工具
https://miniu.alipay.com/keytool/create
在这里插入图片描述
按照图片顺序选择生成选项,RSA2, 非JAVA适用
生成密钥
然后复制 应用公钥 到开放平台的设置中
在这里插入图片描述
点击保存设置即可

之后将生成的 应用私钥 复制,保存为名叫private-key.pem的文件

再点击开放平台的RSA2密钥,查看支付宝公钥
在这里插入图片描述
支付宝公钥复制,保存为public-key.pem的文件

项目结构

-Project
	-main.js
	-public-key.pem
	-private-key.pem
	-package.json

public-key.pem,private-key.pem分别是刚才保存的密钥文件

编写Main.js

先引入’alipay-sdk’

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

AlipaySdk 是使用Alipay接口的类,然后再初始化

const alipaySdk = new AlipaySdk({
    signType: 'RSA2',//这里直接使用'RSA2'不要更改
    gateway: 'https://openapi.alipaydev.com/gateway.do',//这里是网关,alipaydev代表使用的是沙箱环境
    appId: '2021000000000000',//这里是应用id,去开放平台查询
    privateKey: fs.readFileSync('./private-key.pem', 'ascii'),//这里是读取私钥文件
    encryptKey: '',//这里是开放平台的AES密钥
    alipayPublicKey: fs.readFileSync('./public-key.pem', 'ascii')//这里是读取公钥文件
});

以上是初始化实例的代码

初始化实例后,就可以使用实例的 exec方法调用支付宝接口

const formData = new AlipayFormData();
    // 调用 setMethod 并传入 get,会返回可以跳转到支付页面的 url
    formData.setMethod('get');

    formData.addField('notifyUrl', 'http://url/Notify');//处理回调,确保安全的
    formData.addField('returnUrl', fromURL);//不安全的,仅仅显示结果
    formData.addField('bizContent', {
        outTradeNo: outTradeNoString,
        productCode: 'FAST_INSTANT_TRADE_PAY',
        totalAmount: '0.01',
        subject: '商品',
        body: '商品详情'
    });

    const result = await alipaySdk.exec(
        'alipay.trade.page.pay',
        {},
        { formData: formData },
    );

    // result 为可以跳转到支付链接的 url
    return result

以上是调用创建订单的代码
其中 outTradeNoString 是商家啊自定义的订单编号

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值