0

我正在尝试使用 paypal rest sdk 执行交易。

我正在尝试以与 sdk 文档相同的方式:。

OAuthTokenCredential tokenCredential = new OAuthTokenCredential("", "");

String accessToken = tokenCredential.getAccessToken();

Address billingAddress = new Address();
billingAddress.setLine1("52 N Main ST");
billingAddress.setCity("Johnstown");
billingAddress.setCountryCode("US");
billingAddress.setPostalCode("43210");
billingAddress.setState("OH");

CreditCard creditCard = new CreditCard();
creditCard.setNumber("4417119669820331");
creditCard.setType("visa");
creditCard.setExpireMonth("11");
creditCard.setExpireYear("2018");
creditCard.setCvv2("874");
creditCard.setFirstName("Joe");
creditCard.setLastName("Shopper");
creditCard.setBillingAddress(billingAddress);

AmountDetails amountDetails = new AmountDetails();
amountDetails.setSubtotal("7.41");
amountDetails.setTax("0.03");
amountDetails.setShipping("0.03");

Amount amount = new Amount();
amount.setTotal("7.47");
amount.setCurrency("USD");
amount.setDetails(amountDetails);

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

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

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

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

Payer payer = new Payer();
payer.setFundingInstruments(fundingInstruments);
payer.setPaymentMethod("credit_card");

Payment payment = new Payment();
payment.setIntent("sale");
payment.setPayer(payer);
payment.setTransactions(transactions);

Payment createdPayment = payment.create(accessToken);

Payment executePayment = Payment.get(accessToken, "PAY-34629814WL663112AKEE3AWQ");

PaymentExecution paymentExecution = new PaymentExecution();
paymentExecution.setPayerId("7E7MGXCWTTKK2");

Payment newPayment = executePayment.execute(accessToken, paymentExecution);

但我得到了例外

Caused by: com.paypal.exception.HttpErrorException: Error code : 500 with response : 
{"name":"INTERNAL_SERVICE_ERROR","message":"An internal service error has occurred","information_link":
"https://developer.paypal.com/webapps/developer/docs/api/#INTERNAL_SERVICE_ERROR","debug_id":"7a7f0k30b2719"}
        at com.paypal.core.HttpConnection.execute(HttpConnection.java:108)
        at com.paypal.core.rest.PayPalResource.execute(PayPalResource.java:321)
        ... 214 more

任何人都可以告诉我为什么我会收到这个错误?

谢谢,

4

2 回答 2

1

不幸的是,我发现 PayPal 沙盒不是很可靠。您在此列表中找到的任何信用卡:http: //www.paypalobjects.com/en_US/vhelp/paypalmanager_help/credit_card_numbers.htm 可以并且最终会从 PayPal 返回错误 500。

不断更改您的测试信用卡号码以避免此问题。

您也可以使用自己的信用卡号,因为沙盒环境不会向您的帐户收取任何费用。

我希望我有一个更好的答案,因为我也遇到了这个问题。

请参阅:PayPal 沙盒内部服务错误

于 2014-03-28T00:22:17.313 回答
1

我也发现了这个问题。我试图找出这个问题。1小时后,我发现问题是由于我们多次使用同一张信用卡而发生的。然后我用不同的卡注册,在沙盒模式下我得到了一个新的令牌。然后我的支付我得到了成功消息

于 2014-12-03T07:53:54.983 回答