2013-08-12 2 views
0

나는 내 자신의 페이팔 프로 시스템을 구축했지만 그는 작동하지 않습니다 템플릿하지만 NVP ACK 성공에 액세스 할 수 없습니다. 인코딩을 변경하려고했지만 변경 사항이 없습니다. 내가받는 유일한 것은 페이팔 프로 NVP 샌드 박스 PHP 지불 불가능

지불을 처리 할 수 ​​없습니다. 판매자에게 직접 문의하십시오.
내 코드입니다 : 내가 "소계"에 의해 "금액"을 대체 봤는데, 데이터 배열에 모두 소문자 대문자를 교체했습니다 그 문제에 대한 해결책을 발견했습니다

session_start(); 

    $total = 0; 

    $total = $_SESSION['navig']->commande->total; 
    $total -= $_SESSION["navig"]->commande->remise; 

// R?f?rence 
$Reference_Cde = urlencode($_SESSION['navig']->commande->transaction); 

// Montant 
$Montant = $total; 

// Récupération de l'adresse de payement 
$server = $serveur_api; 
$version = "87.0"; 
$method = "BMCreateButton"; 
$user = $username_api; 
$pwd = $password_api; 
$signature = $key_api; 
$buttoncode = "TOKEN"; 
$buttontype = "PAYMENT"; 

$data = array(
    "PAYMENTACTION" => urlencode("sale"), 
    "AMOUNT"  => urlencode(round($Montant, 2)), 
    "TAX"   => urlencode("19.6"), 
    "FIRST_NAME" => urlencode($_SESSION["navig"]->client->prenom), 
    "LASR_NAME"  => urlencode($_SESSION["navig"]->client->nom), 
    "ADDRESS1"  => urlencode($_SESSION["navig"]->client->adresse1), 
    "ADDRESS2"  => urlencode($_SESSION["navig"]->client->adresse2), 
    "CITY"   => urlencode($_SESSION["navig"]->client->ville), 
    "ZIP"   => urlencode($_SESSION["navig"]->client->cpostal), 
    "EMAIL"   => urlencode($_SESSION["navig"]->client->email), 
    "SHIPPING_1" => urlencode($_SESSION["navig"]->commande->port), 
    "CURRENCY_CODE" => urlencode($Devise), 
    "PAYER_ID"  => urlencode($_SESSION["navig"]->client->id), 
    "PAYER_EMAIL" => urlencode($_SESSION["navig"]->client->email), 
    "RETURN"  => urlencode($retourok), 
    "NOTIFY_URL" => urlencode($confirm), 
    "CANCEL_RETURN" => urlencode($retournok), 
    "INVOICE"  => urlencode($Reference_Cde) 
); 

$request[] = "VERSION=".$version; 
$request[] = "METHOD=".$method; 
$request[] = "USER=".$user; 
$request[] = "PWD=".$pwd; 
$request[] = "SIGNATURE=".$signature; 
$request[] = "BUTTONCODE=".$buttoncode; 
$request[] = "BUTTONTYPE=".$buttontype; 

$i = 0; 
foreach ($data as $key => $value) { 
    $request[] = "L_BUTTONVAR".$i."=".$key."=".$value; 
    $i++; 
} 

$requestcurl = ""; 

foreach ($request as $data => $value) { 
    $requestcurl .= $value . "&"; 
} 

$requestcurl = substr($requestcurl, 0, -1); 
$requestcurl = str_replace(" ", "+", $requestcurl); 
$requestcurl = utf8_encode($requestcurl); 
$url = parse_url($serveur_api); 
$reponse = ""; 

$fp = fsockopen("ssl://".$url['host'],"443",$err_num,$err_str,30); 
if(!$fp) { 
    return false; 
} else { 

    fputs($fp, "POST $url[path] HTTP/1.1\r\n"); 
    fputs($fp, "Host: $url[host]\r\n"); 
    fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); 
    fputs($fp, "Content-length: ".strlen($requestcurl)."\r\n"); 
    fputs($fp, "Charset: utf-8\r\n"); 
    fputs($fp, "Connection: close\r\n\r\n"); 
    fputs($fp, $requestcurl . "\r\n\r\n"); 

    while(!feof($fp)) 
     $reponse .= fgets($fp, 4096); 

    fclose($fp); 
}; 

$rep = explode("&", $reponse); 
$rep = explode("=", $rep[1]); 
$result = urldecode($rep[1]); 
header("Location:".$result); 

답변

관련 문제