Appearance
发起微信支付云函数
本案例以微信 native 支付为例,native 支付服务端下单之后微信支付会返回一个 code-url, 然后前端接收这个返回值,直接把这个 code-url 在前端 生成一个二维码即可用微信扫描支付,适合 PC 网站支付。
code-url 类似:weixin://wxpay/bizpayurl?pr=aIQrOYOzz
notify_url 也可以写一个 laf 云函数来接受支付结果的通知。
创建 wx-pay
云函数,添加依赖 wxpay-v3,编写以下代码:
import cloud from "@/cloud-sdk";
const Payment = require("wxpay-v3");
exports.main = async function (ctx: any) {
const { goodsName, totalFee, payOrderId } = ctx.body;
// create payment instance
const payment = new Payment({
appid: "应用ID",
mchid: "商户id",
private_key: getPrivateKey(),
serial_no: "序列号",
apiv3_private_key: "api v3密钥",
notify_url: "付退款结果通知的回调地址",
});
// 下单
const result = await payment.native({
description: goodsName,
out_trade_no: payOrderId,
amount: {
total: totalFee,
},
});
return result;
};
function getPrivateKey() {
const key = `-----BEGIN PRIVATE KEY-----
HOBHEk+4cdiPcvhowhC8ii7838DP4qC+18ibL/KAySWyZjUC/keOr4MxhxQ1T+OV
...
...
475J8ALCRltkgTSxicoXS7SpjLqvIH2FPpv2BI+qQ3nOmAugsRkeH9lZdC/nSC0m
uI205SwTsTaT70/vF90AwQ==
-----END PRIVATE KEY-----
`;
return key;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38