项目初始化:
//安装alipay-sdk
npm install alipay-sdk -S
//安装express
npm install express
完整代码
//引入 alipay sdk 模块
const AliPaySdk = require('alipay-sdk').default
//引入 alibapay form 模块
const AlipayForm = require('alipay-sdk/lib/form').default
//引入 express 框架
const express = require('express')
// 实例化框架
const app = express()
// 引入框架的中间件
const router = express.Router()
//初始化alipay 配置
const alipaySdk = new AliPaySdk({
appId: 'appid', // 自己的id
gateway: "https://openapi.alipaydev.com/gateway.do", // 这是支付宝官网沙箱测试网关
privateKey: `支付宝开放平台开发助手生成的应用私钥`,
alipayPublicKey: `支付宝加签方式里面的支付宝公钥` // 支付宝公钥
})
// 服务器发送请求
app.get('/pay', async (req, res) => {
console.log("接收请求");
// 实例化 AlipayForm
const formData = new AlipayForm()
// 下面是官网的测试代码
formData.setMethod('get')
formData.addField('returnUrl', 'http://www.baidu.com'); //支付成功的回调
console.log('formData:', formData);
formData.addField('bizContent', {
outTradeNo: Math.random(), // 订单号
productCode: 'FAST_INSTANT_TRADE_PAY', // 产品码
totalAmount: '9.89', // 商品金额
subject: '商品~', // 出售商品的标题
body: '' // 出售商品的内容
});
//执行结果
const reult = await alipaySdk.exec('alipay.trade.page.pay', {}, {
formData: formData
})
// 返回一个 json 格式的数据
res.json({
code: reult
})
})
// 开启服务器进行监听
app.listen(8080, () => {
console.log('success, http://localhost:8080/pay')
})