功能需求: 在自己的网站让用户扫码进行支付
整体流程
1. 前端发起请求, 传递订单或支付参数给后端
2. 后端将参数整合, 包含回调url, 调用阿里支付AlipaySdk, 成功响应后会收到返回的二维码字符信息, 交给前端
3. 前端自行将字符生成二维码, 用户扫码后, 支付宝会请求回调url通知结果
4. 后端回调接口拿到明文数据,进行校验,变更订单支付状态
5. 前端轮询状态, 成功跳转页面!
后端请求二维码
-
前置条件
- 支付宝开发平台注册认证, 创建应用,配置密匙,回调域名, 支付能力 开通订单码功能
- 获取应用
appid
privateKey
alipayPublicKey
-
获取二维码
const alipay = new AlipaySdk({ appId: '20213678714138', privateKey: 'MIIEv6786678hkiG9w0BAQ', alipayPublicKey: 'MIIB678F67856AAOCAQ8AMI', }), const result = await alipay.exec('alipay.trade.precreate', { notifyUrl: 'https://xzz.xzz.com/api/payment/alipay_notify', // 自定义的异步通知回调地址 bizContent: { out_trade_no: 'orderNumber', total_amount: '0.01', subject: '测试商品', store_id: 'NJ_001', }, }); /* { code: '10000', msg: 'Success', outTradeNo: 'order1749458250879', qrCode: 'https://qr.alipay.com/bax00213452345m0015', traceId: '219078ab1748708922e3521' } */
后端接收回调通知
- 支付宝回调简单,不需要验签及解析数据, 数据都是明文的,从body就能拿到