我正在使用PayPal Express Checkout,我需要做的是分别授权和捕获付款,我的当前PayPal流程如下:
1)我使用以下代码创建付款:
PayPal会返回订单信息和重定向URL,我将用户重定向到链接对象中的href。当Payflow返回我的网站时,它会发送给我...
然后我使用以下代码执行了付款。
这段代码的基本功能是:
请注意:我已阅读了以下PayPal文档,但无法理解。请注意,我需要在PayPal页面上显示付款详细信息以及付款页面上的优惠券代码及其折扣。 https://developer.paypal.com/docs/integration/direct/capture-payment/#authorize-the-payment https://developer.paypal.com/docs/classic/express-checkout/ht_ec-singleAuthPayment-curl-etc/ 提前感谢 :) .
1)我使用以下代码创建付款:
var paypal = require('paypal-rest-sdk');
function createPayPal(req, res, itemsArray, redirectsTos) {
var payment = {
"intent": "sale",
"payer": {},
"transactions": [{
"amount": {
"currency": sails.config.currency,
"total": itemsArray.totalArrayAmount,
"details": {
"subtotal": itemsArray.totalArrayAmount,
"fee": sails.config.PayPalCreateFee
}
},
"invoice_number": req.session.invNum,
"item_list": {
"items": itemsArray.itemsArray
}
}]
};
sails.log.info('payment obj :', JSON.stringify(payment))
payment.payer.payment_method = sails.config.PayPalPaymentMethod;
payment.redirect_urls = {
"return_url": res.locals.return_url_buy,
"cancel_url": res.locals.cancel_url_buy
};
paypal.payment.create(payment, function(error, payment) {
if (error) {
sails.log.error(error);
redirectsTos(({
message: 'failure',
redirect: '/paypal/error'
}), null);
} else {
sails.log.info('Payment ID = ', payment.id);
sails.log.info('User ID = ', req.session.userSession);
var redirectUrl;
for (var i = 0; i < payment.links.length; i++) {
var link = payment.links[i];
if (link.method === 'REDIRECT') {
redirectUrl = link.href;
sails.log.info('goto:', redirectUrl)
redirectsTos(null, ({
message: 'success',
redirect: redirectUrl
}));
}
}
}
});
}
PayPal会返回订单信息和重定向URL,我将用户重定向到链接对象中的href。当Payflow返回我的网站时,它会发送给我...
{
paymentId: 'PAY-5FB60654T5508144abcxyzZLQ',
token: 'EC-26U68825EW2123428',
PayerID: 'QSABTRW6AHYH6'
}
然后我使用以下代码执行了付款。
function executePayPal(req, paymentId, payerId, executedPayPal) {
sails.log.info('in executedPayPal');
var details = {
"payer_id": payerId
};
var payment = paypal.payment.execute(paymentId, details, function(error, payment) {
if (error) {
sails.log.error('error in payment id in executePayPal function of paypal controller', error);
var err = JSON.stringify(error);
var errParsed = JSON.parse(err);
crashHandlingService.appCrash(errParsed, 101202);
executedPayPal(({
message: 'failure',
redirect: '/paypal/error/'
}), null);
} else {
executedPayPal(({
message: 'success',
redirect: '/paypal/success/'
}), null);
}
});
}
这段代码的基本功能是:
- 创建付款;
- 将用户重定向到PayPal页面C;
- 捕获付款。
- 授权付款 →
- 捕获付款,以便我可以在稍后的某个cronJob或服务中捕获付款。并在上述流程的中途将用户重定向到PayPal页面,我真的不知道如何授权、重定向和捕获付款。
请注意:我已阅读了以下PayPal文档,但无法理解。请注意,我需要在PayPal页面上显示付款详细信息以及付款页面上的优惠券代码及其折扣。 https://developer.paypal.com/docs/integration/direct/capture-payment/#authorize-the-payment https://developer.paypal.com/docs/classic/express-checkout/ht_ec-singleAuthPayment-curl-etc/ 提前感谢 :) .