2014-01-22 3 views
4

페이팔 비누 클라이언트를 사용하고 Paypal Express Checkout with Java 참조로 setExpressCheckout 메소드를 수행하려고합니다. 그래서 여기페이팔 API를 사용하는 동안 SOAP 연결을 설정할 수 없습니다

난 단지 페이팔-base.jar와 (WSDL에서 생성) 비누 클라이언트의 대신 페이팔-stubs.jar을 사용하고 있습니다.

public class SetExpressCheckoutService{ 

     private static Logger log = Logger.getLogger(SetExpressCheckoutService.class); 

     public static void main(String[] args){ 
      SetExpressCheckoutService setExpressCheckoutService = new SetExpressCheckoutService(); 

      //the parameters for the service 
      Long userId = 5l; 
      String amount = "25"; 
      String returnURL = "http://localhost:8080/integratingstuff-paypal/return_after_payment.xhtml"; 
      String cancelURL = "http://localhost:8080/integratingstuff-paypal/cancel_payment.xhtml"; 
      PaymentActionCodeType paymentAction = PaymentActionCodeType.Sale; 
      CurrencyCodeType currencyCode = CurrencyCodeType.EUR; 

      try { 
       //calling the service, setting up the checkoutpage 
       String token = setExpressCheckoutService.setExpressCheckout(userId, amount, currencyCode, returnURL,cancelURL,paymentAction); 
       log.info("Url to redirect to: https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&useraction=commit&token=" + token); 
      } catch (PayPalException e) { 
       log.error(e); 
      } 
     } 

     public String setExpressCheckout(Long userId, String paymentAmount, 
       CurrencyCodeType currencyCodeType, String returnURL, String cancelURL, 
        PaymentActionCodeType paymentAction) throws PayPalException{ 



CallerServices caller = new CallerServices(); 

      //construct and set the profile, these are the credentials we establish as "the shop" with Paypal 
      APIProfile profile = ProfileFactory.createSignatureAPIProfile(); 
      profile.setAPIUsername("sdk-three_api1.sdk.com"); 
      profile.setAPIPassword("QFZCWN5HZM8VBG7Q"); 
      profile.setSignature("AVGidzoSQiGWu.lGj3z15HLczXaaAcK6imHawrjefqgclVwBe8imgCHZ"); 
      profile.setEnvironment("sandbox"); 
      caller.setAPIProfile(profile); 

      //construct the request 
      SetExpressCheckoutRequestType pprequest = new SetExpressCheckoutRequestType(); 
      pprequest.setVersion("63.0"); 

      //construct the details for the request 
      SetExpressCheckoutRequestDetailsType details = new SetExpressCheckoutRequestDetailsType(); 

      PaymentDetailsType paymentDetails = new PaymentDetailsType(); 
      paymentDetails.setOrderDescription("Integrating Stuff Test Order"); 
      paymentDetails.setInvoiceID("INVOICE-" + Math.random()); 
      BasicAmountType orderTotal = new BasicAmountType(paymentAmount); 
      orderTotal.setCurrencyID(currencyCodeType); 
      paymentDetails.setOrderTotal(orderTotal); 
      paymentDetails.setPaymentAction(paymentAction); 
      details.setPaymentDetails(new PaymentDetailsType[]{paymentDetails}); 

      details.setReturnURL(returnURL); 
      details.setCancelURL(cancelURL); 
      details.setCustom(userId.toString()); 

      //set the details on the request 
      pprequest.setSetExpressCheckoutRequestDetails(details); 

      //call the actual webservice, passing the constructed request 
      SetExpressCheckoutResponseType ppresponse = (SetExpressCheckoutResponseType) caller.call("SetExpressCheckout", pprequest); 

      //get the token from the response 
      return ppresponse.getToken(); 
     } 
    } 

나는이 방법을 실행하기 위해 노력했다,하지만 난에 의한
com.paypal.sdk.exceptions.FatalException: Unable to establish SOAP connection

으로 예외를 얻고있다 : com.paypal.sdk.core에서 java.lang.NullPointerException이 . APICallerBase.getEndpointUrl (APICallerBase.java:296)

전체 스택 트레이스는 다음과 같습니다

com.paypal.sdk.exceptions.FatalException: Unable to establish SOAP connection 
     at com.paypal.sdk.core.soap.SOAPAPICaller.setupConnection(SOAPAPICaller.java:292) 
     at com.paypal.sdk.services.CallerServices.setAPIProfile(CallerServices.java:112) 
     at com.imedicor.liferay.organizations.util.PaypalService.setExpressCheckout(PaypalService.java:92) 
     at com.imedicor.liferay.organizations.util.PaypalService.testing(PaypalService.java:43) 
     at org.apache.jsp.organization_005fdetails_jsp._jspService(organization_005fdetails_jsp.java:500) 
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:73) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
     at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) 
     at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593) 
     at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530) 
     at com.liferay.portlet.PortletRequestDispatcherImpl.dispatch(PortletRequestDispatcherImpl.java:323) 
     at com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:134) 
     at com.imedicor.liferay.organizations.portlet.OrganizationPortlet.doView(OrganizationPortlet.java:83) 
     at com.liferay.portal.kernel.portlet.LiferayPortlet.doDispatch(LiferayPortlet.java:218) 
     at com.liferay.util.bridges.mvc.MVCPortlet.doDispatch(MVCPortlet.java:319) 
     at javax.portlet.GenericPortlet.render(GenericPortlet.java:233) 
     at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:100) 
     at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64) 
     at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:111) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:73) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
     at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) 
     at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593) 
     at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530) 
     at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:534) 
     at com.liferay.portlet.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:607) 
     at com.liferay.portlet.InvokerPortletImpl.render(InvokerPortletImpl.java:359) 
     at org.apache.jsp.html.portal.render_005fportlet_jsp._jspService(render_005fportlet_jsp.java:1207) 
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
     at com.liferay.portal.servlet.DirectRequestDispatcher.include(DirectRequestDispatcher.java:97) 
     at com.liferay.portal.servlet.PACLRequestDispatcherWrapper.doDispatch(PACLRequestDispatcherWrapper.java:90) 
     at com.liferay.portal.servlet.PACLRequestDispatcherWrapper.include(PACLRequestDispatcherWrapper.java:54) 
     at com.liferay.portal.util.PortalImpl.renderPortlet(PortalImpl.java:5158) 
     at com.liferay.portal.util.PortalUtil.renderPortlet(PortalUtil.java:1569) 
     at com.liferay.portlet.layoutconfiguration.util.RuntimePortletImpl.processPortlet(RuntimePortletImpl.java:165) 
     at com.liferay.portlet.layoutconfiguration.util.RuntimePortletImpl.processPortlet(RuntimePortletImpl.java:203) 
     at com.liferay.portlet.layoutconfiguration.util.RuntimePortletImpl.processPortlet(RuntimePortletImpl.java:190) 
     at com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processPortlet(RuntimePortletUtil.java:87) 
     at com.liferay.portlet.layoutconfiguration.util.velocity.TemplateProcessor.processMax(TemplateProcessor.java:165) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:389) 
     at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:378) 
     at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270) 
     at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:262) 
     at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:342) 
     at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336) 
     at org.apache.velocity.Template.merge(Template.java:328) 
     at org.apache.velocity.Template.merge(Template.java:235) 
     at org.apache.velocity.app.VelocityEngine.mergeTemplate(VelocityEngine.java:381) 
     at com.liferay.portal.velocity.VelocityEngineImpl.mergeTemplate(VelocityEngineImpl.java:264) 
     at com.liferay.portal.kernel.velocity.VelocityEngineUtil.mergeTemplate(VelocityEngineUtil.java:73) 
     at com.liferay.portlet.layoutconfiguration.util.RuntimePortletImpl.doProcessTemplate(RuntimePortletImpl.java:499) 
     at com.liferay.portlet.layoutconfiguration.util.RuntimePortletImpl.doDispatch(RuntimePortletImpl.java:394) 
     at com.liferay.portlet.layoutconfiguration.util.RuntimePortletImpl.processTemplate(RuntimePortletImpl.java:228) 
     at com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processTemplate(RuntimePortletUtil.java:125) 
     at org.apache.jsp.html.portal.layout.view.control_005fpanel_jsp._jspService(control_005fpanel_jsp.java:676) 
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:73) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
     at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) 
     at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593) 
     at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530) 
     at com.liferay.portal.action.LayoutAction.includeLayoutContent(LayoutAction.java:468) 
     at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:735) 
     at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:249) 
     at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) 
     at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) 
     at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:187) 
     at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) 
     at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
     at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:560) 
     at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:537) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163) 
     at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:294) 
     at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:73) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
     at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) 
     at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471) 
     at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402) 
     at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329) 
     at com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:138) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163) 
     at com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:335) 
     at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163) 
     at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:123) 
     at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108) 
     at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163) 
     at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:294) 
     at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108) 
     at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163) 
     at com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(I18nFilter.java:241) 
     at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163) 
     at com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:56) 
     at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108) 
     at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163) 
     at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:246) 
     at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108) 
     at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163) 
     at com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter.processFilter(NtlmPostFilter.java:83) 
     at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108) 
     at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163) 
     at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:80) 
     at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108) 
     at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:163) 
     at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:216) 
     at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:187) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:167) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:167) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:187) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95) 
     at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:73) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) 
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
     at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
     at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) 
     at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) 
     at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:619) 
Caused by: java.lang.NullPointerException 
     at com.paypal.sdk.core.APICallerBase.getEndpointUrl(APICallerBase.java:296) 
     at com.paypal.sdk.core.soap.SOAPAPICaller.setupConnection(SOAPAPICaller.java:193) 

그래서 끝점 URL을 설정하지 않아이 예외가 발생합니까?

이 경우 끝점 URL을 설정하는 방법은 무엇입니까?

위의 방법을 시작할 때 다음과 같은 방법으로 끝점에 대한 구성을 추가하려고했습니다.

Map<String, String> sdkConfig = new HashMap<String, String>(); 
     sdkConfig.put("mode", "sandbox"); 
     sdkConfig.put("acct1.UserName", "sdk-three_api1.sdk.com"); 
     sdkConfig.put("acct1.Password", "QFZCWN5HZM8VBG7Q"); 
     sdkConfig.put("acct1.Signature","AVGidzoSQiGWu.lGj3z15HLczXaaAcK6imHawrjefqgclVwBe8imgCHZ"); 
     PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(sdkConfig); 

하지만 여전히 동일한 예외가 발생합니다.

이 문맥에서 안내해주십시오. 당신이 샌드 박스는 다음을 사용하여 사용하는 경우

service.Binding=SOAP 
    service.EndPoint=https://api-3t.paypal.com/2.0 
    service.RedirectURL=https://www.paypal.com/webscr&cmd= 
    service.DevCentralURL=https://developer.paypal.com 
    service.IPNEndpoint=https://www.paypal.com/cgi-bin/webscr 

:

덕분에,

+0

누구나 고전 api/soap 클라이언트를 사용하여 페이팔과 연결을 만드는 방법에 대한 아이디어가 있습니까? – Java

+0

당신은'CallerServices','APIProfile' 등의 클래스들을 포함하고있는'JAR' 파일을 어디서 다운로드 할 수 있습니까? 어디서나이 JAR을 찾을 수 없습니다. – Yura

+0

여기에서 paypal_base.jar'http : // www.java2s.com/Code/Jar/p/Downloadpaypalbasejar.htm'을 다운로드 할 수 있습니다. 여기에는이 모든 클래스가 포함됩니다. – Java

답변

4

그래, CallerService이 왜 언급 된 예외를 던 졌는지 알 수 없었습니다. 왜냐하면 심지어 디 컴파일 후, paypal_base.jar을 언급했기 때문에, 코드는 꽤 복잡하고 후드 아래에서 무슨 일이 일어나는지 알기가 어렵 기 때문입니다. 나는이 JAR에 대한 참조를 여러 곳을 제외하고는 어디에서나 찾을 수 없기 때문에 구형 인 것처럼 보입니다.

하지만 페이팔에서 제공하는 원본 문서를 계속 사용하는 것이 좋습니다. 나는 나 자신을 시도하고 여기 내가 찾은 내용은 다음과 같습니다

  1. 는 (Merchant 링크 Classic APIs에서 범주를 클릭하면 인터넷에 파고 경우, 당신은 찾을 수 있습니다, 언급 한 기사에서 Paypal API SDK and Downloads 링크를 따라 그 페이팔 가맹점 API해야 ExpressCheckout 요청에 사용). 위의 Java 버튼을 클릭하고 Maven (권장) 또는 페이지 하단의 다운로드 링크를 사용하여 SDK를 다운로드하십시오.

  2. Merchant API jar에 필요한 모든 클래스가 포함되어 있으므로 다운로드 한 JAR 파일을 프로젝트에 추가하고 다른 PayPal JAR 파일을 제거하십시오.

  3. 이제 모든 것을 당신이 SetExpressCheckoutRequestType의 인스턴스를 형성하고 당신이 SetExpressCheckoutRequestType의 인스턴스를 취하고 SetExpressCheckoutResponseType의 인스턴스를 반환 some invocation code을 필요로 위의 코드에서 : 그래서 추측에 달려있다.
  4. Eclipse에서 Search -> References -> Workspace 기능을 사용하여 Merchant API 항아리에서 SetExpressCheckoutRequestType이 사용되는 곳을 찾습니다. 이 검색은 (다른 장소 외에) SetExpressCheckoutReq 클래스의 용도를 검색 할 수
  5. 그럼 난 다시 사용하는 검색 기능 방법 setSetExpressCheckoutRequest(SetExpressCheckoutRequestType)있다 SetExpressCheckoutReq라는 이름의 클래스가 있음을 보여 SetExpressCheckoutResponseType 필요 반환 방법 setExpressCheckout(SetExpressCheckoutReq setExpressCheckoutReq)와 클래스 PayPalAPIInterfaceServiceService이 있음을 발견했다. setExpressCheckout(SetExpressCheckoutReq setExpressCheckoutReq, ICredential credential)
  6. 가 다시 내가 ICredential 인터페이스를 구현하는 클래스를 찾았다 및 클래스 생성자 복용 SignatureCredential이 이름이 발견 이클립스를 사용 :

  7. 은 바로 옆에 setExpressCheckout(SetExpressCheckoutReq setExpressCheckoutReq) 방법도 ICredential 매개 변수를 사용하고 다음 서명이 방법이있다 3 매개 변수 : 사용자 이름, 암호, 서명. 그리고 이것은 나에게 갈 길입니다. 하나는 서비스의 구성으로 Properties 인스턴스를 전달해야합니다

    final SetExpressCheckoutRequestType ppRequest = ...; // here you create your request as in code snippet above 
    
    final Properties serviceConfigurationProperties = ...; // bookmark #1 
    final PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(serviceConfigurationProperties); 
    
    final SetExpressCheckoutReq request = new SetExpressCheckoutReq(); 
    request.setSetExpressCheckoutRequest(ppRequest); 
    
    final ICredentials credentials = new SignatureCredentials(username, password, signature); 
    final SetExpressCheckoutResponseType response = service.setExpressCheckout(request, credentials); 
    

Bookmark #1 : -

그래서, 매우 약 같은 코드는 이제 보일 것입니다. 어떤 속성을 지정해야하는지 알아 내려면 google을 사용하여 제 3 자 블로그가 아닌 원래 PayPal 문서를 고수해야합니다. PayPalAPIInterfaceServiceService 클래스의 Javadocs를 보면 "sdk_config"라는 파일이 있음을 알 수 있습니다. 속성 ". 인터넷 검색 후, 나는 그 파일의 몇 가지 예를 발견했다 : Example #1, Example #2

이것은 완벽한 해결책은 아니며, 필자가 전에 PayPal SOAP API를 사용하기 위해 사용한 힌트 모음과 같다는 점에 유의한다. 이 API는 간결한 문서가 아니기 때문에 꽤 자주 바뀌므로 소스 코드로 Merchant API 항아리를 다운로드하고 몇 가지 문제가 발생할 때마다 코드를 살펴 보도록 권장합니다. 이는 종종 많은 것을 명확히합니다. 당신이 자바에서 웹 서비스 클라이언트와 경험이없는 경우에 경우에, 나는 시도를 추천,

  1. PayPal SOAP API Basics
  2. PayPal Merchant SDK on GitHub

또한 : 또한 페이팔의 원래 문서에 충실하십시오 그물에 자습서를 사용하여 몇 가지 간단한 것을 구현 - 이것은 많은 것을 명확히 할 수 있습니다.

죄송하지만 전체 코드를 간결하게 게시하지 않으 셨습니다. 지금부터 2 년 동안 PayPal에서 근무하지 않았으며 그 당시에는 일주일 내내 모든 세부 정보를 찾아 설정하고 실행했습니다. 질문을 게시하십시오 - 시간이있을 때 답변을하려고합니다

희망이 있습니다 ...나는 또한 과거에 이러한 문제를 경험 - FAILURE을 반환 response.getAck()에 관한

편집

. 그 요청에 보낸 매개 변수를 실험하여 해결 - PayPal 매우 민감한 어떤 매개 변수가 생략되었거나 올바른 값이없는 경우 단순히 FAILURE 반환했습니다. 이 PayPal SetExpressCheckout SOAP API documentation

또한 유의하시기 바랍니다 Merchant SDK2.5.106 버전 106.0의 API를 사용하는 버전 :

하나는 여기 매개 변수의 전체 목록을 찾을 수 있습니다.

희망이 있습니다 ...

+0

친구에게 감사드립니다. 그것은 많은 도움이되었습니다. 이제는 DirectPayment를 사용하여 트랜잭션을 수행 할 수 있으며 recurringPaymentProfile을 작성할 수도 있습니다. – Java

+0

놀랍지 만, expressCheckout을 실행할 수 없으므로 response.getAck()을 FAILURE로 가져옵니다. – Java

+0

@Java 도움이 된 것을 기쁘게 생각합니다! 'response.getAck()'에 대해'FAILURE'를 반환하는 것은 제 답변의 편집 된 부분을 참조하십시오. – Yura

0

당신은 아마 당신은 몇 가지 더 설정이 필요

또한
service.EndPoint=https://api-3t.paypal.com/2.0 

엔드 포인트 URL을 설정해야 설정 :

service.Binding=SOAP 
    service.EndPoint=https://api-3t.sandbox.paypal.com/2.0 
    service.RedirectURL=https://www.sandbox.paypal.com/webscr&cmd= 
    service.DevCentralURL=https://developer.paypal.com 
    service.IPNEndpoint=https://www.sandbox.paypal.com/cgi-bin/webscr 
관련 문제