我正在使用Paypal的PHP SDK,但我在执行付款时遇到问题(400,错误代码:PAYER_CANNOT_PAY) .
沙箱设置:
-
创建了一个商业沙箱帐户
-
创建了一个开发者帐户
-
创建了一个应用程序
-
创建了具有余额和链接信用卡的沙盒买家帐户
码:
- 使用Paypal SDK创建付款
$cred = new OAuthTokenCredential("$clientID", "$secret", $sdkConfig);
$cred->accessToken = $cred->getAccessToken($sdkConfig);
$apiContext = new ApiContext($cred);
$payer = new Payer();
$payer->setPaymentMethod("paypal");
$item1 = new Item();
$item1->setName('Ground Coffee 40 oz')
->setCurrency('USD')
->setQuantity(1)
->setSku("123123") // Similar to `item_number` in Classic API
->setPrice(7.5);
$item2 = new Item();
$item2->setName('Granola bars')
->setCurrency('USD')
->setQuantity(5)
->setSku("321321")
->setPrice(2);
$itemList = new ItemList();
$itemList->setItems(array($item1, $item2));
$details = new Details();
$details->setShipping(1.2)
->setTax(1.3)
->setSubtotal(17.50);
$amount = new Amount();
$amount->setCurrency("USD")
->setTotal(20)
->setDetails($details);
$transaction = new Transaction();
$transaction->setAmount($amount)
->setItemList($itemList)
->setDescription("Payment description")
->setInvoiceNumber(uniqid());
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl("http://test.dev/paypal?success=true")
->setCancelUrl("http://test.dev/paypal?success=false");
$payment = new Payment();
$payment->setIntent("sale")
->setPayer($payer)
->setRedirectUrls($redirectUrls)
->setTransactions(array($transaction));
$request = clone $payment;
$payment->create($apiContext);
-
App将用户重定向到Paypal沙箱登录页面
-
使用沙盒帐户登录(付款部分为空)
-
使用令牌,paymentID,payerID和状态(成功)重定向用户
-
执行付款< - 来自API 400,PAYER_CANNOT_PAY的回复
$paymentId = $request->all()['paymentId'];
$payment = Payment::get($paymentId, $apiContext);
$execution = new PaymentExecution();
$execution->setPayerId($request->all()['PayerID']);
$payment->execute($execution, $apiContext);
错误:
{
"status": 400,
"duration_time": 156,
"body": {
"message": "The combination of payer and payee settings mean that this buyer can't pay this seller.",
"debug_id": "debugid",
"details": [],
"name": "PAYER_CANNOT_PAY",
"information_link": "https://developer.paypal.com/docs/api/payments/#errors"
},
}
知道为什么会失败吗?
先感谢您!
2 回答
也许买家的卡银行拒绝付款 . 没有集成问题 . 尝试使用其他帐户确认您的集成 .
您确定您没有尝试登录并使用作为卖家的同一开发者帐户付款吗?您需要确保为买家和卖家使用单独的沙盒帐户 .