Paypal SDK-paymentId与发票号与订单ID

Paypal SDK-paymentId与发票号与订单ID,paypal,Paypal,我发现有点难以理解paymentId发票号和orderId之间的区别 这是nodejs中的演示代码,我在其中标记字段。 还有一种方法可以在执行付款之前获取用户想要付款的项目的发票号 const express=require('express')) const bodyParser=require('body-parser') const cors=require('cors') 常量app=express(); const paypal=require('paypal-rest-sdk');

我发现有点难以理解paymentId发票号和orderId之间的区别

这是nodejs中的演示代码,我在其中标记字段。 还有一种方法可以在执行付款之前获取用户想要付款的项目的发票号

const express=require('express'))
const bodyParser=require('body-parser')
const cors=require('cors')
常量app=express();
const paypal=require('paypal-rest-sdk');
use(bodyParser.urlencoded());
app.use(cors())
use(bodyParser.json());
paypal.configure({
“模式”:“沙盒”,
“客户id”:
“客户机密”:
});
//正在从客户端调用
app.post(“/pay”,(请求、回复、下一步)=>{
createOrder(req.body.transactionId,paymentUrl=>{
res.send({paymentUrl});
});
})
//在用户确认付款后从paypal调用
app.get('/process',(req,res,next)=>{
//我可以在这里得到发票号码以便在收费前了解付款的目的吗?
var paymentId=req.query.paymentId;
变量payerId={
“付款人id”:req.query.PayerID
};
var顺序;
paypal.payment.execute(paymentId、PayRid、函数(错误、付款){
如果(错误){
console.error(JSON.stringify(error));
}否则{
如果(payment.state==“已批准”&&
付款、交易&&
payment.transactions[0]。相关资源&&
payment.transactions[0]。相关资源[0]。订单){
orderId=payment.transactions[0]。相关资源[0]。order.id;
//发票号payment.id和订单号之间有什么区别
reshttp://localhost:4200/order/payment/success/“+orderId);
}否则{
reshttp://localhost:4200/order/payment/failure/“+orderId);
}
}
});
});
//应该只从paypal调用
app.post('/error',(请求、恢复、下一步)=>{
log(“来自paypal的错误”);
})
应用程序监听(3300,功能(){
log('端口3000上侦听的示例应用程序!')
})
函数createOrder(数据,回调){
让发票号=Math.round(Math.random()*1000000);
var payReq=JSON.stringify({
意图:"命令",,
付款人:{
付款方式:“贝宝”
},
重定向URL:{
返回url:'http://localhost:3300/process',
取消url:'http://localhost:4200/order/payment/failure'
},
交易:[{
金额:{
总计:“30.03”,
货币:美元
},
描述:“这是付款交易描述。”,
发票编号:发票编号,//应为事务ID
付款选项:{
允许的付款方式:“即时资金来源”
}
}]
});
paypal.payment.create(payReq,函数(错误,付款){
var-links={};
如果(错误){
console.error(JSON.stringify(error));
}否则{
//捕获HATEOAS链接
payment.links.forEach(函数(linkObj){
链接[linkObj.rel]={
href:linkObj.href,
方法:linkObj.method
};
})
if(links.hasOwnProperty('approval\u url')){
回调(links.approval\u url.href);
}否则{
错误('不存在重定向URI');
}
}
});
}