【问题标题】:The currency 'HKD' is supported in "DoDirectPayment" method in paypal?paypal的“DoDirectPayment”方法支持货币'HKD'?
【发布时间】:2016-07-13 23:07:24
【问题描述】:

我正在尝试在我的网站中实现“DoDirectPayment”方法。 我有贝宝沙盒帐户,并且我有贝宝 api。 当我将货币设置为“美元”时,我的代码会返回成功消息。 但是当我设置 'HKD' 货币时,它会返回“由于货币不受支持,无法处理此交易”消息。

这里我附上了我的代码。请检查并给我一些解决方案。

$api_version = '78.0';
$api_endpoint = 'https://api-3t.sandbox.paypal.com/nvp';

$api_username = 'platfo_1255077030_biz_api1.gmail.com';
$api_password = '1255077037';
$api_signature = 'Abg0gYcQyxQvnf2HDJkKtA-p6pqhA1k-KTYE0Gcy1diujFio4io5Vqjf';



$creditcardtype = 'VISA';
$cardno = '4854897648835021';
$expdate = '112020';
$cvv = '176';
$PRICE = '50.00';
$currency_code = 'HKD';
$request_params = array(
                        'USER' => $api_username, 
                        'PWD' => $api_password, 
                        'SIGNATURE' => $api_signature, 
                        'VERSION' => $api_version, 
                        'PAYMENTACTION' => 'SALE',                   
                        'CREDITCARDTYPE' => $creditcardtype, 
                        'ACCT' => $cardno,                        
                        'EXPDATE' => $expdate,           
                        'CVV2' => $cvv, 
                        'AMT' => $PRICE, 
                        'CURRENCYCODE' => $currency_code, 
                        'FIRSTNAME'=>'James',
                        'LASTNAME'=>'Smith',
                        'STREET'=>'FirstStreet',
                        'CITY'=>'SanJose',
                        'STATE'=>'CA',
                        'COUNTRYCODE'=>'US',
                        'ZIP'=>95131
                   );
$request_params['METHOD'] = 'DoDirectPayment';


$nvp_string = '';
foreach($request_params as $var=>$val)
{
    $nvp_string .= '&'.$var.'='.urlencode($val);    
}

$curl = curl_init();
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_URL, $api_endpoint);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $nvp_string);

$result = curl_exec($curl);     
curl_close($curl);
$response = NVPToArray($result);
echo '<pre>';
print_r($response);
echo '</pre>';


function NVPToArray($NVPString)
{
    $proArray = array();
    while(strlen($NVPString))
    {
        $keypos= strpos($NVPString,'=');
        $keyval = substr($NVPString,0,$keypos);
        $valuepos = strpos($NVPString,'&') ? strpos($NVPString,'&'): strlen($NVPString);
        $valval = substr($NVPString,$keypos+1,$valuepos-$keypos-1);
        $proArray[$keyval] = urldecode($valval);
        $NVPString = substr($NVPString,$valuepos+1,strlen($NVPString));
    }
    return $proArray;
}

这是输出消息 http://i.imgur.com/JMMG4I3.png

提前致谢

【问题讨论】:

    标签: php paypal payment-gateway paypal-sandbox


    【解决方案1】:

    参考https://developer.paypal.com/docs/classic/api/currency_codes/?mark=currency,在“直接信用卡产品的多币种支持”部分,如果您的沙盒账户国家是美元,支持的货币是澳元、加元、欧元、英镑、日元、美元,所以港币是不支持。

    【讨论】:

      猜你喜欢
      • 2014-07-30
      • 2012-07-20
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      • 2018-06-07
      • 1970-01-01
      • 2012-03-14
      • 1970-01-01
      相关资源
      最近更新 更多