2014-07-09 2 views
3

PayPal의 클래식 express checkout API을 사용하여 각도 앱에서 PayPal 결제를 완료하려고합니다. 이 체크 아웃 과정에서 PayPal 사이트에서 지불을 승인하기 위해 구매자를 보낼 URL을 얻습니다. 해당 URL을 요청하면 PayPal은 302 응답을 반환하고 구매자를 리디렉션하려고 시도합니다. 그러나 브라우저가 리디렉션을 시도하면이 오류가 발생합니다.Angular 앱에서 PayPal 익스프레스 체크 아웃을 원하십니까?

XMLHttpRequest cannot load 'PAYPAL_SITE'. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'MY_HOST' is therefore not allowed access.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 필자는 PayPal에도 최신의 RESTful API가 있다는 것을 보았습니다. 이 API가 CORS를 지원하는 경우 문제를 해결하기 위해 전환하겠습니까? Angular 구성에서 변경해야 할 것이 있습니까? 내가 읽은 바로는 PayPal 서버가 내 호스트 액세스를 허용하기 위해 특정 헤더를 필요로하는 것처럼 보이지만 나는 너무 확신하지 못한다 ...

답변

1

내가 해결 한 방법은 각도 앱에서 멀리 사용자를 보내는 것입니다. Paypal 사이트에 (XML이 아닌) HTTP 요청을 바로 만든 "더미"페이지. URL에 params로 필요한 데이터를 전달했습니다. 당신의 js에서

:

window.location.href = "dummypage.html" + build_params(); 

당신이 당신의 컨트롤러, MVC 프레임 워크의 일종을 사용하는 가정 :

index() { 
    paypalUrl = getParams(paypalUrl); 
    redirect_to(paypalUrl); 
} 

는 사용자들이 각도로 다시 리디렉션됩니다 지불을 확인하는 경우 앱을 사용하여 거래를 완료하십시오. 나는 이것이 최적의 솔루션이라고 생각하지 않는다. 사용하기가 꽤 지저분하지만, 아직 더 좋은 것을 찾지 못했다!

관련 문제