Node.js Paypal sdk:签证卡不起作用
Posted
技术标签:
【中文标题】Node.js Paypal sdk:签证卡不起作用【英文标题】:Node.js Paypal sdk: visa card is not working 【发布时间】:2020-07-01 21:29:36 【问题描述】:我正在尝试在 node.js 中使用 PayPal 处理信用卡
使用主卡,以下代码适用于具有201
状态代码的沙盒帐户。
但是,不能使用“签证”、“美国运通”。
使用“visa”、“amex”卡,我收到500
状态码,但找不到错误详细信息。
谁见过这个案例?
var paypal = require('paypal-rest-sdk');
paypal.configure(
'mode': 'sandbox',
'client_id': 'CLIENT_ID',
'client_secret': 'CLIENT_SECRET_KEY'
);
var payment =
"intent": "authorize",
"payer":
"payment_method": "credit_card",
"funding_instruments": [
"credit_card":
"type": "visa",//visa//mastercard//amex
"expire_month": 1,
"expire_year": 2022,
"cvv2": "VISA_CCV2",
"number": "VISA_NUMBER"
]
,
"redirect_urls":
"return_url": "http://127.0.0.1:3000/success",
"cancel_url": "http://127.0.0.1:3000/err"
,
"transactions": [
"item_list":
"items": [
"name": "media dvd",
"sku": "001",
"price": "1.00",
"currency": "USD",
"quantity": 1
]
,
"amount":
"total": 1.00,
"currency": "USD"
,
"description": " a book on mean stack "
]
paypal.payment.create(payment, timeout: 10000 , function (err, payment)
if (err)
console.log(err, payment);
else
console.log(payment);
);
【问题讨论】:
您以文本形式将信用卡号传递给 PayPal?阅读 developer.paypal.com 上的文档 此集成未启用以供实时使用。你不应该整合它。它不受支持且无法使用。 【参考方案1】:发件人:https://developer.paypal.com/docs/api/payments/v1/
重要提示:使用 PayPal REST /payments API 接受信用卡付款受到限制。相反,您可以使用 Braintree Direct 接受信用卡付款。
(Braintree direct 将是一个完整的网关帐户,需要帐户批准并且仅适用于企业in certain countries.)
由于您试图将旧的东西与旧的 SDK 集成,并且无法在实际环境中使用 - 这是最好的 PayPal 替代方案:
使用受支持的新 v2 Checkout-NodeJS-SDK
使用带有黑色借记卡/信用卡按钮的 PayPal Checkout 前端:https://developer.paypal.com/demo/checkout/#/pattern/server
【讨论】:
【参考方案2】:直接付款仅限于从信用卡到贝宝。 因此,您可以使用 Braintree Direct 实现支付集成。
const braintree = require("braintree");
const gateway = new braintree.BraintreeGateway(
environment: braintree.Environment.Sandbox, // Sandbox or Production
merchantId: "Your_merchatn_id",
publicKey: "Your_public key",
privateKey: "Your_private_key"
);
您可以使用 merchantId、publicKey、privateKey 进行身份验证。
gateway.transaction.sale(
amount: `10`,
paymentMethodNonce: "fake-valid-nonce",
options:
submitForSettlement: true,
storeInVaultOnSuccess: true
, function (err, result)
if (err)
console.error(err);
if (result.success)
console.log('Transaction ID: ' + result.transaction.id);
console.log('Customer ID: ' + result.transaction.customer.id);
var customer_id = result.transaction.customer.id;
let creditCardParams =
customer_id,
number: `4111111111111111`,
expirationDate: `04/2022`,
cvv: `133`
;
gateway.creditCard.create(creditCardParams, (err, response) =>
if(err)
console.log(err.message);
else
console.log(response);
);
else
console.error(result);
);
【讨论】:
以上是关于Node.js Paypal sdk:签证卡不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Paypal rest sdk 400 error (node.js) 关于 VALIDATION ERROR 的事情(错误写在描述中)
如何在 paypal node.js 中获取交易 ID 反应?