Paypal Rest API 使用信用卡付款方式

Paypal Rest API With Credit Cart Payment Method

这就是我创建 PayPal 付款的方式。

 var apiContext = GetApiContext(clientId, clientSecret);

 CreditCard creditCard = new CreditCard();
 creditCard.number = "4877274905927862";
 creditCard.type = "visa";
 creditCard.expire_month = 11;
 creditCard.expire_year = 2018;
 creditCard.cvv2 = "874";
 creditCard.first_name = firstName;
 creditCard.last_name = lastName;

 Amount amount = new Amount();
 amount.total = "7.47";
 amount.currency = "USD";

 Transaction transaction = new Transaction();
 transaction.amount = amount;
 transaction.description = "This is the payment transaction description.";

 List<Transaction> transactions = new List<Transaction>();
 transactions.Add(transaction);

 FundingInstrument fundingInstrument = new FundingInstrument();
 fundingInstrument.credit_card = creditCard;

 List<FundingInstrument> fundingInstruments = new List<FundingInstrument>();
 fundingInstruments.Add(fundingInstrument);

 Payer payer = new Payer();
 payer.funding_instruments = fundingInstruments;
 payer.payment_method = "credit_card";

 Payment payment = new Payment();
 payment.intent = "sale";
 payment.payer = payer;
 payment.transactions = transactions;

 Payment createdPayment = payment.Create(apiContext);

对于 payment.execute,我需要付款 ID 和付款人 ID。但是付款人 ID 变得空了 你能告诉我,我怎样才能得到付款人ID?我错过了什么吗?

使用信用卡支付时不需要payment.Execute(...)

创建付款后...

Payment createdPayment = payment.Create(apiContext);

...,只需调用createdPayment.id获取付款ID。

如果你想用paypal方式付款 需要 payment.Create(...),然后 payment.Execute(...)(在买家通过重定向到 PayPal 批准付款后)。

关于付款人 ID

当您通过 paypal 方式付款时,您会 payment.Create(...) 然后将买家重定向到 PayPal。买家批准付款后,PayPal 会重定向到您的 url 并在查询字符串中给您一个 PayerID。然后您将像这样执行付款:

var execution = new PaymentExecution { payer_id = Request.Params["PayerID"] };
payment.Execute(apiContext, execution);

请参考支付宝亲们API。我认为这对你有好处,并为你提供更好的知识。