Angular 贝宝-从服务器发送金额
这是我第一次尝试在我的网站上实现支付,我发现paypal几乎没有什么不好掌握的地方 在我的应用程序中,用户可以上传他想要翻译的任意多个视频。 每个视频可以翻译成多种语言。 根据视频持续时间和用户选择的请求语言计算总价格 以最简单的方式,我将此代码添加到我的站点Angular 贝宝-从服务器发送金额,angular,paypal,Angular,Paypal,这是我第一次尝试在我的网站上实现支付,我发现paypal几乎没有什么不好掌握的地方 在我的应用程序中,用户可以上传他想要翻译的任意多个视频。 每个视频可以翻译成多种语言。 根据视频持续时间和用户选择的请求语言计算总价格 以最简单的方式,我将此代码添加到我的站点 基本上,当用户单击支付按钮并获取返回url和取消url 从前端使用window.location例如:window.location.origin+'/success url',以便在本地服务器上测试时不会出现问题, 舞台与制作。然后,
基本上,当用户单击支付按钮并获取
返回url
和取消url
从前端使用window.location例如:window.location.origin+'/success url',以便在本地服务器上测试时不会出现问题,
舞台与制作。然后,当用户被重定向到https://example.com/success-url
,paymentId
和PayerID
将通过
payapal,然后从该页面可以在后端调用executeOrder
这里是链接到
下面是一个示例nodejs代码:
exports.createOrder = (data, callback) => {
/* First step when user clicks 'Pay with paypal' on place-order screen */
var create_payment_json = {
"intent": "sale",
"payer": {
"payment_method": "paypal"
},
"redirect_urls": {
"return_url": data.return_url,
"cancel_url": data.cancel_url
},
"transactions": [{
"amount": {
"total": getAmountFromNoOFVideos(),
"currency": "USD"
},
"description": "Video Translation"
}]
};
paypal.payment.create(create_payment_json, function (error, payment) {
if (error) {
callback(error);
} else {
if(payment.payer.payment_method === 'paypal') {
for(var i=0; i < payment.links.length; i++) {
var link = payment.links[i];
if (link.method === 'REDIRECT') {
redirectUrl = link.href;
}
}
}
callback(null, redirectUrl, payment.id)
}
});
}
exports.executeOrder = (data, callback) => {
/* Second and final step in place-order screen */
let paymentId = data.paymentId;
let PayerID = data.PayerID;
var details = { "payer_id": PayerID };
paypal.payment.execute(paymentId, details, function (error, payment) {
if (error) {
console.log("\x1b[31m", "PAYPAL ERROR: ", error)
callback(error);
} else {
callback(null, true);
}
});
}
exports.createOrder=(数据,回调)=>{
/*用户在下订单屏幕上单击“使用paypal支付”时的第一步*/
var create\u payment\u json={
“意图”:“出售”,
“付款人”:{
“付款方式”:“贝宝”
},
“重定向URL”:{
“return\u url”:data.return\u url,
“取消url”:data.cancel\u url
},
“交易”:[{
“金额”:{
“总计”:getAmountFromNoOFVideos(),
“货币”:“美元”
},
“说明”:“视频翻译”
}]
};
paypal.payment.create(创建付款,函数(错误,付款){
如果(错误){
回调(错误);
}否则{
如果(payment.payer.payment_method==='paypal'){
对于(变量i=0;i{
/*第二步和最后一步到位订单屏幕*/
让paymentId=data.paymentId;
设PayerID=data.PayerID;
var详细信息={“付款人\用户id”:PayerID};
paypal.payment.execute(paymentId、详细信息、函数(错误、付款){
如果(错误){
log(“\x1b[31m”,“PAYPAL错误:”,错误)
回调(错误);
}否则{
回调(null,true);
}
});
}
贝宝流量:
-假设您的网站链接是www.videotranslate.com
www.videotranslate.com
www.videotranslate.com/API/createOrder
从您的角度组件/服务(取决于您的设计)redirectUrl
从后端的createOrder
函数www.videotranslate.com/success callback
www.videotranslate.com/api/executeOrder
www.videotranslate.com/cancel callback
,这里您可以显示一个错误
敬酒并要求用户再次付款基本上,当用户单击pay按钮并获取返回url和取消url时,您要做的是在后端调用
createOrder
API(参见下面的nodejs代码)
从前端使用window.location例如:window.location.origin+'/success url',以便在本地服务器上测试时不会出现问题,
阶段和生产。然后当用户重定向到https://example.com/success-url
,paymentId
和PayerID
将通过
payapal,然后从该页面可以在后端调用executeOrder
这里是链接到
下面是一个示例nodejs代码:
exports.createOrder = (data, callback) => {
/* First step when user clicks 'Pay with paypal' on place-order screen */
var create_payment_json = {
"intent": "sale",
"payer": {
"payment_method": "paypal"
},
"redirect_urls": {
"return_url": data.return_url,
"cancel_url": data.cancel_url
},
"transactions": [{
"amount": {
"total": getAmountFromNoOFVideos(),
"currency": "USD"
},
"description": "Video Translation"
}]
};
paypal.payment.create(create_payment_json, function (error, payment) {
if (error) {
callback(error);
} else {
if(payment.payer.payment_method === 'paypal') {
for(var i=0; i < payment.links.length; i++) {
var link = payment.links[i];
if (link.method === 'REDIRECT') {
redirectUrl = link.href;
}
}
}
callback(null, redirectUrl, payment.id)
}
});
}
exports.executeOrder = (data, callback) => {
/* Second and final step in place-order screen */
let paymentId = data.paymentId;
let PayerID = data.PayerID;
var details = { "payer_id": PayerID };
paypal.payment.execute(paymentId, details, function (error, payment) {
if (error) {
console.log("\x1b[31m", "PAYPAL ERROR: ", error)
callback(error);
} else {
callback(null, true);
}
});
}
exports.createOrder=(数据,回调)=>{
/*用户在下订单屏幕上单击“使用paypal支付”时的第一步*/
var create\u payment\u json={
“意图”:“出售”,
“付款人”:{
“付款方式”:“贝宝”
},
“重定向URL”:{
“return\u url”:data.return\u url,
“取消url”:data.cancel\u url
},
“交易”:[{
“金额”:{
“总计”:getAmountFromNoOFVideos(),
“货币”:“美元”
},
“说明”:“视频翻译”
}]
};
paypal.payment.create(创建付款,函数(错误,付款){
如果(错误){
回调(错误);
}否则{
如果(payment.payer.payment_method==='paypal'){
对于(变量i=0;i{
/*第二步和最后一步到位订单屏幕*/
让paymentId=data.paymentId;
设PayerID=data.PayerID;
var详细信息={“付款人\用户id”:PayerID};
paypal.payment.execute(paymentId、详细信息、函数(错误、付款){
如果(错误){
log(“\x1b[31m”,“PAYPAL错误:”,错误)
回调(错误);
}否则{
回调(null,true);
}
});
}
贝宝流量:
-假设您的网站链接是www.videotranslate.com
www.videotranslate.com
www.videotranslate.com/API/createOrder
从您的角度组件/服务(取决于您的