为什么PayPal NVP 不接受我的货币代码


Why won't PayPal NVP accept my currency code?

我希望PayPal快速结帐页面显示$AUD的总计,但它不接受它。

这工作没问题

$nvpStr =  "&RETURNURL=$returnURL
            &CANCELURL=$cancelURL
            &PAYMENTREQUEST_0_PAYMENTACTION=Sale
            &PAYMENTREQUEST_0_AMT=$total
            &PAYMENTREQUEST_0_ITEMAMT=$total
            &L_PAYMENTREQUEST_0_NAME0=$name
            &L_PAYMENTREQUEST_0_QTY0=$quantity
            &L_PAYMENTREQUEST_0_AMT0=$price
            &L_PAYMENTREQUEST_0_DESC0=$description
            &NOSHIPPING=1 
            ";

但这会返回错误代码 [L_LONGMESSAGE1] => 不支持货币。

$nvpStr =  "&RETURNURL=$returnURL
            &CANCELURL=$cancelURL
            &PAYMENTREQUEST_0_PAYMENTACTION=Sale
            &PAYMENTREQUEST_0_AMT=$total
            &PAYMENTREQUEST_0_ITEMAMT=$total
            &PAYMENTREQUEST_0_CURRENCYCODE=AUD
            &L_PAYMENTREQUEST_0_NAME0=$name
            &L_PAYMENTREQUEST_0_QTY0=$quantity
            &L_PAYMENTREQUEST_0_AMT0=$price
            &L_PAYMENTREQUEST_0_DESC0=$description
            &NOSHIPPING=1 
            ";

事实上,我选择什么代码并不重要 PAYMENTREQUEST_0_CURRENCYCODE 欧元、美元 ,它总是返回该错误。我尝试了大写字母和没有大写字母,检查空格等。

还尝试了每个建议的 url 编码货币代码,但相同的错误。

$cc = urlencode("AUD");
    $nvpStr =  "&RETURNURL=$returnURL
                &CANCELURL=$cancelURL
                &PAYMENTREQUEST_0_PAYMENTACTION=Sale
                &PAYMENTREQUEST_0_AMT=$total
                &PAYMENTREQUEST_0_ITEMAMT=$total
                &PAYMENTREQUEST_0_CURRENCYCODE=$cc
                &L_PAYMENTREQUEST_0_NAME0=$name
                &L_PAYMENTREQUEST_0_QTY0=$quantity
                &L_PAYMENTREQUEST_0_AMT0=$price
                &L_PAYMENTREQUEST_0_DESC0=$description
                &NOSHIPPING=1 
                ";

什么给?

我认为您必须对货币类型进行 url 编码。

如:

PAYMENTREQUEST_0_CURRENCYCODE'=>urlencode('GBP')