나는 페이팔, 내 백 엔드 서버 RESTfull 자바 서버입니다 통합해야하는 모바일 애플 리케이션을 개발했습니다. 그래서 페이팔과 통합하기 위해 클라이언트 측에서 "deviceReferenceTokenWithAppId"를 얻습니다. 다른 세부 정보 (cartId..etc)와 함께 백엔드 서버에서 서블릿을 호출합니다. 요청이 서블릿에 오면 백 엔드 작업을 수행하고 페이팔을 호출합니다. 모바일 결제에 필요한 "SetExpressCheckout"토큰을 받으십시오.페이팔 모바일 익스프레스 체크 아웃과 자바
StringBuilder postData = new StringBuilder();
postData.append(USER).append("=").append(Constants.PAYPAL_MERCHANT_USER);
postData.append("&").append(PASSWORD).append("=").append(Constants.PAYPAL_MERCHANT_PASSWORD);
postData.append("&").append(SIGNATURE).append("=").append(Constants.PAYPAL_MERCHANT_SIGNATURE);
postData.append("&").append(METHOD).append("=").append("SetExpressCheckout");
postData.append("&").append(VERSION).append("=").append("88");
postData.append("&").append(AMOUNT).append("=").append(amount.toString());
postData.append("&").append(CANCEL_URL).append("=").append(Constants.PAYPAL_MERCHANT_CANCEL_URL);
postData.append("&").append(RETURN_URL).append("=").append(Constants.PAYPAL_MERCHANT_RETURN_URL);
byte[] postDataArr = postData.toString().getBytes(UTF-8);
// Hit the the URL.
URL url = new URL("https://api-3t.sandbox.paypal.com/nvp");
HttpsURLConnection.setDefaultHostnameVerifier(new CustomizedHostnameVerifier());
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
conn.setRequestProperty("Content-Length", Integer.toString(postDataArr.length));
DataOutputStream output = new DataOutputStream(conn.getOutputStream());
output.write(postDataArr);
output.flush();
output.close();
rc = conn.getResponseCode();
내 문제는 내가 페이팔 NVP를 호출하는 경우, 내가 대신 내가 오류 다음 얻을 응답으로 유효한 토큰을 얻을 해달라고입니다
Key - TIMESTAMP - value : 2012-06-11T18:16:02Z
Key - CORRELATIONID - value : 207108cab758a
Key - ACK - value : Failure
Key - VERSION - value : 88
Key - BUILD - value : 2975009
Key - L_ERRORCODE0 - value : 10002
Key - L_SHORTMESSAGE0 - value : Security error
Key - L_LONGMESSAGE0 - value : Security header is not valid
Key - L_SEVERITYCODE0 - value : Error
난이 오류가 왜
누군가는 말해 줄 수 ? 내가 여기서 아무것도 놓치지 않았 니?
내가 TOKEN을 성공적으로 얻을 수 있으면 다음 URL로 내 서블릿 응답을 리디렉션하여 모바일 체크 아웃보기를 모바일 애플리케이션에 가져와야합니다. 내가 실수 여기에 수행 한 경우 누군가가 올바른 경로로 나를 인도 할 수있는 경우
https://www.sandbox.paypal.com/webscr?cmd=_express-checkout-mobile&drt="+<deviceReferenceTokenWithAppId>+"&token="+<TOKEN from payal nvp>
는
감사합니다. Robert. 나는 오류를 발견, 나는 페이팔 판매자 계정 번호 대신 사용자 ID를 입력했습니다. 그러나 나는 여전히 페이팔보기에서 요금이 청구 금액을 보여주지 않는 문제가있다, 나는 'PAYMENTREQUEST_0_AMT'(VERSION 88.0)과 'AMT'(VERSION 62.0)를 금액 (2 자리 10 진수)으로 설정하려고 시도했다. 하지만 페이팔 창에서 사용자에게 지불해야하는 금액은 표시되지 않습니다. – bluelabel
처음에는 언급하지 않은 별도의 문제입니다. 어느쪽으로 든, 그것을 고치는; PayPal 리디렉션 URL에 "useraction = commit"을 추가하십시오 (https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-xxxxxx&useraction=commit을 읽으십시오) – Robert