嗨,我是我的应用程序的集成支付网关,但我被卡住了。对于 cod(货到付款)支付方式,它工作正常。但是在集成在线支付网关时,它有点痛苦,就像我在成功创建链接时使用 instamojo 创建支付链接一样;我将该付款链接返回给客户并将用户重定向到该链接
1 如果用户成功填写卡详细信息并且 instamojo 使用付款详细信息点击我提供的 webhook(post url) 2 如果用户取消标签或不付款怎么办
这里的问题是在数据库中创建顺序的位置。如果要在我的应用程序的 placeorder url 上创建它,那么我需要将订单状态设置为不完整并为第二个条件运行 cron 作业(因为已经创建了订单并且 intamojo 没有命中 webhook)。这是正确的做法还是有其他更好的方法来处理这一切
Promise.all([getUpdatedCart(userId), findUser(userId), getDiscount(userId,couponCode)])
.then(function(resultArray) {
var cart = resultArray[0];
var user = resultArray[1];
var discountAmount = resultArray[2];
var offerId=null;
if (!cart)
return sendResponse(response,400,"error","Cart Not Found");
if (discountAmount>0)
var offerId=getOfferId(couponCode);
var order = {
user: user._id,
cart: cart._id,
shippingAddress:shippingAddressId,
billingAddress:billingAddressId,
paymenMethod: paymentMethod,
offer:offerId,
deliveryNote:deliveryNote,
amount:cart.amount
};
var newOrder = Order(order);
if (paymentMethod==='cod')
newOrder.save(function(error,order){
if (!error)
if (order){
Cart.expireCart(cart._id);
return sendResponse(response,201,"success",order);
}
});
else if(paymentMethod==='intamojo'){
var purpose='Order Number-'+ newOrder.id;
Instamojo.setHeaders(InstaConfig.test.API_KEY, InstaConfig.test.API_AUTH_TOKEN);
var amountPayable = cart.amount - discountAmount;
var data = generatePayload(user, purpose, amountPayable);
Instamojo.createPaymentLink(data, function(error, resultResponse, body) {
if (resultResponse && body && resultResponse.statusCode===201)
return sendResponse(response,200,"success",body.longUrl+"?embed=form");
});
}
else if(paymentMethod==='payumoney'){
}
else
return sendResponse(response,400,"error","Invalid Mode of Payment");
})
.catch(function(error) {
return sendResponse(response,400,"error",error);
});
如果我需要编写 cron 工作,任何人都可以帮忙,请为此建议库