【问题标题】:The transaction currency specified must be the same as previously specified指定的交易币种必须与之前指定的相同
【发布时间】:2014-11-21 07:43:32
【问题描述】:

您好,我尝试在 PayPal 中使用欧元创建付款,但出现错误。但是当我使用美元付款时,它可以正常工作。

[TIMESTAMP] => 2014-09-26T10:03:06Z
[CORRELATIONID] => 4d802c104e0ae
[ACK] => Failure
[VERSION] => 64
[BUILD] => 13055236
[L_ERRORCODE0] => 10444
[L_SHORTMESSAGE0] => Transaction refused because of an invalid argument. See additional error messages for details.
[L_LONGMESSAGE0] => The transaction currency specified must be the same as previously specified.
[L_SEVERITYCODE0] => Error

【问题讨论】:

  • 您指定货币的方式可能有误。显示您的代码。
  • 我指的是您的代码,而不是代码示例。此示例使用 AUD

标签: php paypal payment-gateway payment


【解决方案1】:

您在“SetExpressCheckout”API 调用中传递了两个与货币相关的参数,如下所示:

$nvpstr = $nvpstr 。 "&CURRENCYCODE=" 。 $currencyCodeType;

$nvpstr.='&PAYMENTREQUEST_0_CURRENCYCODE='.$currencyCodeType;

但在“DoExpressCheckoutPayment”API 调用中,您只传递了一个:

$nvpstr = $nvpstr 。 "&PAYMENTREQUEST_0_CURRENCYCODE=".$currency;

您应该在两个 API 调用中只传递一个与货币相关的参数: $nvpstr.='&PAYMENTREQUEST_0_CURRENCYCODE='.$currencyCodeType;

一旦您在“SetExpressCheckout”API 调用中进行了这些更改,就应该没问题了

【讨论】:

【解决方案2】:

用这个替换您的代码,paypal 已弃用某些字段,例如

PAYMENTACTIONPAYMENTREQUEST_n_PAYMENTACTION

AMTPAYMENTREQUEST_n_AMT

CUSTOMPAYMENTREQUEST_n_CUSTOM

$nvpstr = "&TOKEN=" . $token;
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_PAYMENTACTION=Sale";
$nvpstr = $nvpstr . "&PAYERID=" . $payerID;
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_AMT=" . $paymentAmount;
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_CUSTOM=" . $userId;  
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_CURRENCYCODE=".$currency;

您在“DoExpressCheckoutPayment”API 调用中进行这些更改应该没问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 2022-08-13
    • 2021-10-16
    • 2018-05-16
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多