1、 进入官网
https://auth.alipay.com/login/index.html
登录
2、下载秘钥转换工具
https://render.alipay.com/p/f/fd-jwq8nu2a/pages/home/index.html
3、生成密钥
注意,此时得到的应用私钥的格式是不对的,应用格式转换转换格式
4、通过3中的应用公钥得到支付宝公钥
5、封装一下相应信息得到alipay.js
const AlipaySdk = require(“alipay-sdk”).default;
const alipaySdk = new AlipaySdk({ appId: “”, //签名算法 gateway:
“https://openapi.alipaydev.com/gateway.do”, //支付宝公钥,4中的
alipayPublicKey:
“”, //应用私钥,3中的 privateKey:
“”, }); module.exports = alipaySdk;
6、接口
const alipaySdk=require('../database/alipay.js');//导入5中的js
const AlipayFormData=require('alipay-sdk/lib/form').default;
//发起支付
router.post("/api/payment", function (req, res, next) {
//订单信息
let orderId = req.body.orderId;
let price = req.body.price;
let name = req.body.name;
//对接支付宝API
const formData = new AlipayFormData();
//调用setMethod 并传入get,会返回可以跳转到支付页面的url,
formData.setMethod("get");
//支付时信息
const bizContent = {
out_trade_no: orderId,
product_code: "FAST_INSTANT_TRADE_PAY",
total_amount: price,
subject: name,
body: "商品详情",
};
formData.addField("bizContent", bizContent);
//支付成功或失败的链接
formData.addField("returnUrl", "http://localhost:8080/payment");
const result = alipaySdk.exec(
"alipay.trade.page.pay",
{},
{ formData: formData }
);
//对接成功,支付宝返回的数据
result.then((resp) => {
res.send({
data: {
code: 200,
success: true,
msg: "支付中",
paymentUrl: resp,
},
});
});
});
7、用无痕模式请求接口
8、结果