我只能从axios获得第一个结果。我正在将付款数据发送到网关。所有付款都会清除,但是我只能取回第一次付款的结果。
这是我正在运行的代码:
app.get("/api/v1/gatewayService/:pId", (req, res) => {
let queryBuilder = `select * from payments where paymentdate = CURDATE() AND pid = ${req.params.pId}`;
var query = db.query(queryBuilder, (err, results) => {
res.send(results);
key = env.key;
var query = db.query(queryBuilder, (err, results) => {
for (let i = 0; i < results.length; i++) {
axios
.post(
`https://secure.myImportantGatewayService/api/transact.php?type=sale&security_key=${key}&ccnumber=${results[i].ccnumber}&ccexp=${results[i].ccexp}&cvv=${results[i].cvv}&amount=${results[i].amount}¤cy=USD&payment=creditcard&orderid=${results[i].orderid}&shipping=0.00&ponumber=${results[i].ponumber}&first_name=${results[i].first_name}&last_name=${results[i].last_name}&address1=${results[i].address1}&city=${results[i].city}&state=${results[i].state}&zip=${results[i].zip}`
)
.then((res) => {
console.log(res.data);
})
.catch((err) => console.error(err));
}
});
});
以下是结果:
response=3&responsetext=Duplicate transaction REFID:987654321&authcode=&transactionid=&avsresponse=&cvvresponse=&orderid=12345&type=sale&response_code=300
因此,我可以分别在每个&
和=
处进行解析以获得结果,但是问题是我要通过许多不同的付款方式发送,并且只能收到1条回复到我的应用/终奌站。如果我检查网关,就会看到每笔付款都可以正常运行,但是如果不破坏每笔付款的付款ID,就无法发布正确的付款。
我尝试使用不同的数组遍历不同的循环已有几天了,只能返回第一个响应。
我正在使用Axios,.then
是我尝试遍历所有可以想象的没有成功的循环的地方。