php - 创建方法中的 Paypal 验证错误

标签 php paypal payment

1)问题是$paypal->create($api)返回这样的错误

 Exception: Got Http response code 400 when accessing 
    https://api.sandbox.paypal.com/v1/payments/payment. string(271) "
    {"name":"VALIDATION_ERROR","details":
    [{"field":"transactions.amount","issue":"Currency should be a valid ISO 
    currency code"}],"message":"Invalid request - see 
    details","information_link":"https://developer.paypal.com/docs/api/
    payments/#errors","debug_id":"cea4b8e54646c"}"

2)这是我的代码

$paypal = new \PayPal\Rest\ApiContext(
    new \PayPal\Auth\OAuthTokenCredential(
        'XXX',
        'YYY'
    )
);

$paypal->setConfig([
    'mode' => 'sandbox',
    'http.ConnectionTimeOut' => 30,
    'log.LogEnabled' => false,
    'log.fileName' => '',
    'log.LogLevel' => 'FINE',
    'validation.level' => 'log'
]);

$payer = new Payer();
$details = new Details();
$amount = new Amount();
$payment = new Payment();
$transaction = new Transaction();
$redirectUrls = new RedirectUrls();

//Payer
$payer->setPaymentMethod('paypal');

//Details
$details->setShipping('2.00')
    ->setTax('0.00')
    ->setSubtotal('20.00');

//Amount
$amount->setCurrency('USA')
    ->setTotal('20.00')
    ->setDetails($details);

//Transactions
$transaction->setAmount($amount)
    ->setDescription('Add balance');

$redirectUrls->setReturnUrl('http://thechaller.com/paypal/pay')
    ->setCancelUrl('http://thechaller.com/paypal/paypalCancel');

$payment->setIntent('sale')
    ->setPayer($payer)
    ->setRedirectUrls($redirectUrls)
    ->setTransactions([$transaction]);

try {
    $payment->create($paypal);
} catch (\PayPal\Exception\PayPalConnectionException $e) {
    echo "Exception: " . $e->getMessage() . PHP_EOL;
    var_dump($e->getData());
    exit(1);
} catch (Exception $e) {
    echo $e->getMessage();
    exit(1);
}

3) client id 和 secret 从这里获取

This is screen shot

最佳答案

您有 $amount->setCurrency('USA')。它应该是 $amount->setCurrency('USD')。错误消息中对此进行了解释:

Currency should be a valid ISO currency code

美国的有效 ISO 货币代码是 USD。

关于php - 创建方法中的 Paypal 验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43435180/

相关文章:

php - MySQL从结果表中显示球队排名

php - 在 Laravel 部署到 Heroku 时查看未找到错误

magento - 获取 Paypal Express [Magento] 的完整账单地址

paypal - 在 Paypal Express Checkout 中预填充表单字段

javascript - 如何从 Javascript 获取 Payeezy API 响应到 PHP 文件?

payment - 将应用程序上传至 Ingenico iCT250

ios - Apple Pay 的服务器端支付 token 解密

php - in_array 检查非假值

php - 从 MySQL 数据库填充 PHP 下拉列表

paypal - 如何在新的 Paypal 沙盒上测试增强型定期付款标准?