大佬教程收集整理的这篇文章主要介绍了node.js – PayPal付款已创建,但从未执行过,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
var paypal = require('paypal-rest-sdk'); paypal.configure({ 'mode': 'live','client_id': '_CLIENT_ID_','client_secret': '_CLIENT_SECRET_' }); . . let payment = { "intent": "sale","transactions": [{ "item_list": { "items": some_items_array,"shipping_address": { "recipient_name": "some_recipient_name","line1": "Fake street","city": "Fake city","country_code": "Fake country","postal_code": "123456","state": "Fake state","phone": "0000000" } },"amount": { "currency": "AUD","total": "15","details": { "subtotal":"15","tax": "0","shipping": "0","handling_fee": "0","shipping_discount": "0","insurance": "0" } } }],"redirect_urls": { "cancel_url": some_base_url + "/home/cart","return_url": some_base_url + "/home/thank-you?cartid=" + cartid },"payer": { "payment_method": "paypal","payer_info": { "email": "fake_email@gmail.com" } } }; paypal.payment.create(payment,function (error,response) { if (error) { console.log(error); // HANDLE ERROR } else { console.log("Create Payment Response"); console.log(response); //SEND SUCCESS RESPONSE } });
成功执行上述行后,用户将被重定向到PayPal网站进行付款.成功付款后,它会将其重定向到包含信息有效负载的“return_url”链接,即:
{ paymentId:'PAY-000000',PayerID:'SOME_PAYER_ID',token:'SOME_TOKEN' }
很多天我一直只保存paymentId,PayerID,&数据库中的令牌而不是执行付款,认为当’意图’设置为’销售’时不需要.
现在我添加了以下代码来执行付款,这对于现在下的订单工作正常.
var execute_payment_json = { "payer_id": 'THE_PAYER_ID',"transactions": [{ "amount": { "currency": 'AUD',"total": '15' } }] }; paypal.payment.execute(paymentId,execute_payment_json,payment) { if (error) { console.log(JSON.stringify(error.response)); //HANDLE ERROR } else { console.log("Get Payment Response"); console.log(JSON.stringify(payment)); //SEND SUCCESS } });
对于成功重定向后未执行payment.execute的旧订单,我尝试对它们执行’payment.execute’并收到以下错误.
{ "name":"INVALID_RESOURCE_ID","message":"The requested resource ID was not found","information_link":"https://developer.paypal.com/docs/api/payments/#errors","debug_id":"878378979aac7","httpStatusCode":404 }
如果我可以执行那些旧付款,请帮助我.我有他们的payerId,paymentId和令牌.
可能发生的事情是您的令牌已过期.虽然this is from the docs for the legacy system,我没有理由相信这不适用于此.
即使对REST来说并不完全正确,同样的原则也是如此
>您设置了呼叫
>客户登录PayPal网站并对其进行授权
> PayPal发回给您的令牌
>您忘记“兑换”代币以进行付款,因此已过期
据我所知,整个交易现在已经死了.您必须立即开始新的付款才能获得付款.
以上是大佬教程为你收集整理的node.js – PayPal付款已创建,但从未执行过全部内容,希望文章能够帮你解决node.js – PayPal付款已创建,但从未执行过所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。