2016-08-19 2 views
0

nvp를 사용하여 빠른 체크 아웃 설치를 시작하려고합니다. 샌드 박스에서 비즈니스 계정을 설정하고 API 액세스 서명 자격 증명을 생성했습니다. 위에 표시된 + 아래 NVP 문자열을 생성 및 결제 세부에 필요한 모든 세부 사항nvp를 사용하여 빠른 체크 아웃을 설정하는 동안 curl을 사용하여 인증/인증 상태가 고침

$curl = curl_init('https://api-3t.sandbox.paypal.com/nvp'); 
curl_setopt($curl, CURLOPT_VERBOSE, 1); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($curl, CURLOPT_TIMEOUT, 30); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $Request); 

$ 요청이 전달 된 NVP 문자열을 보유하고있는 컬 전화와 같이

$this->NVPCredentials = 'USER=' . credentials['username']; 
$this->NVPCredentials .= '&PWD=' . credentials['password']; 
$this->NVPCredentials .= '&VERSION=108.0'; 
$this->NVPCredentials .= '&SIGNATURE=' . credentials['signature']; 

는 자격 증명을 감쌌다.

필자는 모든 필수 필드가 설정되었지만 항상 10002 | 인증/권한 부여 실패 | 이 API 호출을 할 수있는 권한이 없습니다.

서명에 문제가있는 것으로 생각하여 서명을 삭제하고 대신 인증서 파일을 만들고 샌드 박스 계정에서 다운로드하여 사용했지만 여전히 동일하게 사용했습니다. 오류. 내가 무엇을 바꿔도 항상 그 같은 오류를 던지고있다.

curl_setopt ($ curl, CURLOPT_SSLCERT, $ pathtocertpem);

나는 아이디어가 부족합니다. 주저하지 말고 더 자세한 내용을 물어보십시오. 내가 잘못하고있는 것에 대해 누구나 알고 있다면 언제든지 망설이지 마십시오. 대단히 감사하겠습니다.

감사

DEVO

답변

0

I 모든 PARAMS를 포맷 http_build_query 함수를 이용하여 다음 컬 할 nvpstring 대신 배열을 전달 의해 문제를 해결할 수 있었다

curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($Request)) 

본 트릭을 한 것으로 보인다.