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
}
});
{
paymentId:'PAY-000000',
PayerID:'SOME_PAYER_ID',
token:'SOME_TOKEN'
}
var execute_payment_json = {
"payer_id": 'THE_PAYER_ID',
"transactions": [{
"amount": {
"currency": 'AUD',
"total": '15'
}
}]
};
paypal.payment.execute(paymentId, execute_payment_json, function (error, payment) {
if (error) {
console.log(JSON.stringify(error.response));
//HANDLE ERROR
} else {
console.log("Get Payment Response");
console.log(JSON.stringify(payment));
//SEND SUCCESS
}
});
{
"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
}
看起来您正在执行过去称为快速结账的操作,而忘记了执行最后的回调。
可能发生的是你的代币过期了。虽然这是来自遗留系统的文档,但我没有理由相信这在这里不适用。
带有时间戳的令牌,指示当前付款的快速结帐处理。此内标识通常在SetExpressCheckout响应中返回,但如果使用Express Checkout第二次重定向流调用SetExpressCheckout,则可以将相同的内标识作为请求参数传递回SetExpressCheckout。PayPal还在将买家从PayPal.com重定向回您的网站时,将此令牌作为名为token的GET参数追加到您的返回URL。默认情况下,令牌在三小时后过期。
我有问题让贝宝接受从我的应用程序的实时支付。我正在使用一个Azure服务器,用C#编写代码,带有一个基于Xamarin的Android客户端应用程序。我可以得到所有工作与贝宝沙箱,但它失败时,我切换到实时凭据。下面是我的付款流程: 1)在我的Android应用程序中,启动PayPal应用程序授权支付。这返回一个授权代码。该代码类似于C21AAHHVXYJKTRK82SOMDGL6SSQD85LLM
在用户批准后执行()授权支付时失败。 范围:"openid配置文件电子邮件地址电话https://uri.paypal.com/services/expresscheckout" consent _ uri:" https://www . sandbox . paypal . com/web apps/auth/protocol/OpenID connect/v1/authorize?客户端标识=
我正在使用贝宝/签出-php-sdk,但我不知道创建订单后该做什么。 我可以成功创建订单: 正如你看到的,我把return_url到“/执行命令”, 因此,PayPal在验证后将我重定向到此url: 但我不知道下一步该怎么办。我必须执行付款,但在包的示例中,我只找到createOrder和captureOrder,但没有executeOrder
执行paypal支付时出现以下错误: {"name":"INTERNAL_SERVICE_ERROR","消息":"发生了内部服务错误","information_link":"https://developer.paypal.com/docs/api/payments/#errors","debug_id":"a997a9f72d8f6"} 以下是付款执行代码:
我试图创建一个模块,允许在结帐过程中部分付款。 让我们坐一辆装有两种产品的购物车,第一种=1000欧元,第二种=500欧元。 用户必须支付1500欧元,但我允许分两步支付,第一个用户将支付1000欧元,然后他必须支付500欧元。 尝试使用Paypal Express支付时,我总是会遇到以下错误: 基本上,我所做的是修改覆盖的值: 是否有可能避免Paypal内部检查的内容,将最终金额与购物车项目金额
{“ID”:“Pay-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”,“Create_Time”:“2016-06-20T11:45:28Z”,“Update_Time”:“2016-06-20T11:45:28Z”,“State”:“Created”,“Intent”:“Sale”,“Payment_Method”:“Credit_