前言
在完成支付宝的支付接入以后,还需要调 统一收单交易查询 接口,而 alipay.trade.query 这个接口的文档有坑。
文档给的示例代码中参数有问题
const AlipaySdk = require("alipay-sdk").default;
const alipaySdk = new AlipaySdk({
appId: "<-- 请填写您的AppId,例如:2019091767145019 -->",
privateKey: "<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->",
alipayPublicKey: "<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->",
gateway: "https://openapi.alipay.com/gateway.do",
});
const result = await alipaySdk.exec("alipay.trade.query", {
bizContent: {
out_trade_no: "20150320010101001",
org_pid: "2088101117952222",
query_options: {
0: "trade_settle_info",
},
trade_no: "2014112611001004680+073956707",
},
});
以上是官方文档给的示例代码,如果你直接拷贝进你的工程运行,则会报错:
query_options:如果填了会报错ACQ.INVALID_PARAMETER,参数无效:参数格式错误。org_pid:如果填了会报错ACQ.TRADE_NOT_EXIST,交易不存在。trade_no:你在刚创建订单的时间,需要通过out_trade_no去查询订单,才能得到trade_no,所以trade_no是不需要填的。
删除以上3个参数以后,我终于调通了。
