Integrando PayPal com WebSphere Commerce V7

Aprenda como integrar PayPal® com WebSphere® Commerce V7.0.0.1 ou posterior, de modo a poder usar PayPal para processar pagamento de pedidos online. Você irá incluir uma nova forma de pagamento para PayPal, criar um novo plug-in de pagamento para PayPal e customizar JSP e comandos para suportar o fluxo do PayPal.

Yi Xu Song, Software Engineer, IBM

Yi Xu Song é Engenheiro de Software da equipe de desenvolvimento de WebSphere Commerce Order Payment, e é o atual proprietário do componente Order Payment. Ele publicou uma invenção e documentos sobre pagamento de pedidos no Centro de Informações do WebSphere Commerce.



20/Jul/2011

Antes de iniciar

PayPal é um dos mais conhecidos provedores de serviço de pagamento no mundo. O fluxo do PayPal é diferente do fluxo de gateways de pagamento tradicionais, como Visanet®. Durante as compras, uma loja online redireciona o comprador ao Web site do PayPal, para processar o pagamento. PayPal Express Checkout é a solução especial de registro de saída do PayPal, que simplifica o processo de registro de saída para os compradores e os mantém no site do vendedor após fazer a compra.

Este tutorial irá demonstrar como usar PayPal Express Checkout para processar pagamentos na loja de iniciante Madisons, no WebSphere Commerce V7.0.0.1. Entretanto, os mesmos princípios podem ser aplicados em versões posteriores, para outros provedores de serviço de pagamento tipo registro de saída e para outros tipos de lojas.

Objetivos

  • Aprender sobre o fluxo do PayPal.
  • Aprender como integrar PayPal com WebSphere Commerce V7.0.0.1 ou posterior.
  • Aprender os princípios da integração de provedores de serviço de pagamento de registro de saída com WebSphere Commerce.

Pré-requisitos

Você deve estar familiarizado com:

  • Desenvolvimento para WebSphere Commerce
  • Modelo de comando do WebSphere Commerce
  • Estrutura de pagamento do WebSphere Commerce
  • Web 2.0 e serviços da Web

Requisitos do Sistema

Kit de Ferramentas do WebSphere Commerce V7.0.0.1 ou posterior

Duração

16 horas

Download de arquivos

Este tutorial fornece os seguintes arquivos zip, que podem ser transferidos por download:

  1. Payments-Plugin-PayPal.zip
  2. Sample-files.zip

O fluxo do PayPal

Fluxo de pedido típico do WebSphere Commerce

Como mostra a Figura 1, um fluxo de pedido típico para um comprador é:

  1. Faz registro de saída na página de carrinho.
  2. Fornece informações de remessa, escolhe uma opção de pagamento e fornece informações de cobrança e pagamento.
  3. Revisa o pedido e paga por ele.
  4. Recebe uma confirmação do pedido.
Figura 1. Fluxo de pedido típico do WebSphere Commerce
Fluxo de pedido típico do WebSphere Commerce

Fluxo de ordem do PayPal com WebSphere Commerce

Em um fluxo Express Checkout, o comprador ainda faz o registro de saída no começo do fluxo. Entretanto, após o comprador escolher a forma de pagamento PayPal, ele é redirecionado para o Web site do PayPal para autenticação. Após isso, ele é redirecionado novamente para a loja WebSphere Commerce, para concluir o restante do fluxo do pedido. A Figura 2 mostra o fluxo de Express Checkout.

No fluxo Express Checkout, o comprador:

  1. Faz registro de saída na página de carrinho.
  2. Escolhe PayPal como forma de pagamento e clica em Next.
  3. Clica no botão Checkout with PayPal.
  4. Faz login no PayPal para autenticar sua identidade.
  5. Revisa a transação no PayPal.
  6. Confirma o pedido e paga no site.
  7. Recebe uma confirmação do pedido.
Figura 2. Fluxo de pedido com PayPal Express Checkout
Fluxo de pedido com PayPal Express Checkout

Integrando a PayPal Express Checkout

Como mostra a Figura 3, há cinco importantes etapas no fluxo do PayPal:

  1. Quando o comprador clica no botão Check out with PayPal, WebSphere Commerce chama a API SetExpressCheckout para recuperar o token, e armazena esse token para uso posterior.
  2. WebSphere Commerce redireciona o navegador para o PayPal, com o token de início da aprovação de comprador para o pagamento.
  3. PayPal redireciona novamente para RETURNURL (configurado em PluginDeployment.xml) do WebSphere Commerce.
  4. PunchoutPaymentCallBackCmd lida com a solicitação, recupera os parâmetros necessários usados pela página Order Summary e redireciona o comprador para a página Order Summary novamente. Essa página oculta o botão Check out with PayPal e mostra agora o botão Order .
  5. Após o comprador clicar no botão Order, a estrutura de Pagamento do WebSphere Commerce chama a API approveAndDeposit do plug-in do PayPal. Isso chama as APIs GetExpressCheckoutDetails e DoExpressCheckoutPayment para processar o pagamento.
Figura 3. Fluxo de pedido detalhado com PayPal Express Checkout
Fluxo de pedido detalhado com PayPal Express Checkout

Desenvolvendo um plug-in do PayPal

No total, três APIs são usadas durante o fluxo de compras: SetExpressCheckout, GetExpressCheckoutDetails e DoExpressCheckoutPayment. Essas APIs são implementadas pelo plug-in do PayPal. O código de amostra do plug-in do PayPal é fornecido com este tutorial. Este plug-in foi testado no Sandbox do PayPal.

  1. Faça download do arquivo Payments-Plugin-PayPal.zip e extraia.
  2. Importe-o no kit de ferramentas como um projeto existente. Selecione File > Import > General > Existing Projects into Workspace como mostra a Figura 4.
    Figura 4. Importe projetos existentes na área de trabalho
    Importe projetos existentes na área de trabalho
  3. Alterne para a perspectiva Java EE e inclua esse projeto no projeto "WC":
    1. Clique duas vezes no descritor de implementação WebSphereCommerceServer do projeto "WC", como mostra a Figura 5.
      Figura 5. Inclua o projeto no projeto “WC” como Módulo 1
      Inclua o projeto no projeto “WC” como Módulo 1
    2. No painel Design, clique em Application e, em seguida, clique no botão Add. Clique duas vezes em Module, como mostra a Figura 6.
      Figura 6. Inclua o projeto no projeto “WC” como Módulo 2
      Inclua o projeto no projeto “WC” como Módulo 2
    3. Como mostra a Figura 7, selecione Payments-Plugin-PayPal, clique em Finish, e salve as alterações. Após Payments-Plugin-PayPal ter sido incluído no projeto “WC”, publique o Servidor de Teste do Commerce.
      Figura 7. Inclua o projeto no projeto “WC” como Módulo 3
      Inclua o projeto no projeto “WC” como Módulo 3

Incluindo uma nova forma de pagamento para o PayPal

  1. Inclua uma nova política de pagamento para PayPal executando o código SQL a seguir para criar uma nova política de pagamento para a loja. Escolha um número para policy_id que não seja usado pela coluna policy_id da tabela POLICY.
    insert into policy( policy_id, policyname, policytype_id,storeent_id, properties )
     values( policy_id, 'PayPal', 'Payment', yourMadisonsStoreId,
     'attrPageName=PayPal&paymentConfigurationId=default&display=true&
     compatibleMode=false');
    insert into policydesc(policy_id, language_id, Description,longDescription )values
     ( policy_id, languageId, 'PayPal', 'PayPal' );
    insert into policycmd (policy_id, businesscmdclass) values (policy_id, 
     'com.ibm.commerce.payment.actions.commands.DoPaymentActionsPolicyCmdImpl') ;
    insert into policycmd (policy_id, businesscmdclass) values (policy_id, 
     'com.ibm.commerce.payment.actions.commands.EditPaymentInstructionPolicyCmdImpl') ;
    insert into policycmd (policy_id, businesscmdclass) values (policy_id, 
     'com.ibm.commerce.payment.actions.commands.QueryPaymentsInfoPolicyCmdImpl');

    Por exemplo:

    insert into policy( policy_id, policyname, policytype_id,storeent_id, properties )
     values( -44447, 'PayPal', 'Payment', 10101,'attrPageName=
     PayPal&paymentConfigurationId
     =default&display=true&compatibleMode=false&uniqueKey=token');
    insert into policydesc(policy_id, language_id, Description,longDescription )values
     ( -44447, -1, 'PayPal', 'PayPal' );
    insert into policycmd (policy_id, businesscmdclass) values (-44447, 
     'com.ibm.commerce.payment.actions.commands.DoPaymentActionsPolicyCmdImpl') ;
    insert into policycmd (policy_id, businesscmdclass) values (-44447, 
     'com.ibm.commerce.payment.actions.commands.EditPaymentInstructionPolicyCmdImpl') ;
    insert into policycmd (policy_id, businesscmdclass) values (-44447, 
     'com.ibm.commerce.payment.actions.commands.QueryPaymentsInfoPolicyCmdImpl');
  2. Desenvolva o fragmento de pagamento desta forma de pagamento com a marca do PayPal inserida, como mostra a página Shipping/Billing Method na Figura 3.

    Faça o download de Sample-files.zip e extraia em uma pasta temporária, e copie PayPal.jsp para toolkitDir/workspace/Stores/YourMedisonsStore/Snippets/EDP/PaymentMethods/. A marca do PayPal foi incluída nesta página. Quando a forma de pagamento PayPal for selecionada na página Shipping/Billing Method, PayPal.jsp é exibido. Altere o layout do arquivo PayPal.jsp de amostra baseado em seus requisitos.

  3. Configure o pagamento da nova forma de pagamento. Crie a pasta toolkitDir/workspace/WC/xml/config/payments/ppc/plugins/PayPal e coloque PluginDeployment.xml do arquivo Sample-files.zip nessa pasta.
  4. Configure as regras de ação. Crie uma nova pasta chamada "PayPal" no caminho toolkitDir/workspace/WC/xml/config/payments/edp/groups/default/. Copie todos os arquivos em toolkitDir/workspace/WC/xml/config/payments/edp/groups/default/CreditCardOffline para essa pasta.
  5. Inclua os mapeamentos de pagamento da forma de pagamento no plug-in do PayPal:
    1. Inclua o seguinte fragmento de código em stoolkitDir/workspace/WC/xml/config/payments/edp/groups/default/PaymentMappings.xml antes de </PaymentMappings>:
      <Mapping paymentMethod="PayPal
                  paymentConfiguration="PayPal"
                  paymentActionRule="Early Deposit"/>
    2. Inclua o seguinte fragmento de código em toolkitDir/workspace/WC/xml/config/payments/edp/groups/default/PaymentMethodConfigurations.xml antes de </PaymentMethodConfigurations>:
      <PaymentMethodConfiguration 
          name="PayPal"
          paymentSystemName="PayPal" 
          systemEditable="true"
          humanEditable="false"
          refundAllowed="true"
          minimumAmount="0"
          maximumAmount="Unbounded"
          priority="MEDIUM"
          partiallyConsumable="true"
          dependentCreditRequired="true"/>
    3. Inclua o seguinte fragmento de código em toolkitDir/workspace/WC/xml/config/payments/ppc/plugins/PaymentSystemPluginMapping.xml antes de </Mapper>:
      <PaymentSystemName name="PayPal" >
       <Mapping paymentConfigurationId="default" pluginName="PayPal"></Mapping>
      </PaymentSystemName>

Customizando a página Order Summary

Para customizar toolkitDir/workspace/Stores/WebContent/YourMadisonsStore/ShoppingArea/ CheckoutSection/CheckoutPaymentAndBillingAddressSummary.jspf:

  1. Inclua o botão Checkout with PayPal na página Order Summary.
  2. Inclua a ação JavaScript no botão Checkout with PayPal para redirecionar a página para PunchoutPaymentRedirect.jsp.
  3. Antes de o token ser recuperado do PayPal, exiba o botão Checkout with PayPal e oculte o botão Order (primeira página Order Summary mostrada na Figura 3). Após o token ser recuperado do PayPal, oculte o botão Checkout with PayPal e exiba o botão Order (segunda página Order Summary na Figura 3).
  4. Inclua o botão Check out with PayPal na página:
    1. Abra:
      toolkitDir/workspace/Stores/WebContent/YourMadisonsStore/ShoppingArea/
      CheckoutSection/CheckoutPaymentAndBillingAddressSummary.jspf
    2. Encontre <c:forEach var="protocolData" items="${paymentInstance.protocolData}">, e inclua o código a seguir antes do </c:forEach> correspondente. Esse código verifica se há uma forma de pagamento do PayPal em uso e se o token foi recuperado do PayPal, chamando a API SetExpressCheckout, e configura os sinalizadores hasPayPalMethod e sessionInitialized para uso posterior.
      <c:if test="${paymentInstance.paymentMethod.paymentMethodName eq 'PayPal'}">
      	<c:set var="hasPayPalMethod" value="true" scope="request"/>
      	<c:if test="${protocolData.name eq 'token'}">
      		<c:set var="sessionInitialized" value="true" scope="request"/>
      	</c:if>
      </c:if>
    3. Encontre <c:if test="${order.orderStatus.status eq 'M' e paymentInstance.paymentMethod.paymentMethodName eq 'SimplePunchout', encontre o </c:if> correspondente, e inclua o seguinte fragmento de código depois de </c:if>. Este fragmento de código é usado para mostrar o botão “Check out with PayPal”, e define a ação JavaScript do botão. Quando o botão é clicado, o navegador é redirecionado para PunchoutPaymentRedirectView(PunchoutPaymentRedirect.jsp.
      <c:if test="${paymentInstance.paymentMethod.paymentMethodName eq 'PayPal' and 
       !sessionInitialized}">
      <form id="punchout_${paymentCount.count}" action="PunchoutPaymentRedirectView" 
       method="POST">
      	<input type="hidden" name="orderId" value="${order.orderIdentifier.
           uniqueID}" />
      	<input type="hidden" name="piId" value="${paymentInstance.uniqueID}" />
      	<input type="hidden" name="catalogId" value="${param.catalogId}" />
      	<input type="hidden" name="storeId" value="${param.storeId}" />
      	<input type="hidden" name="langId" value="${param.langId}" />
      </form>
      <div id="punchout_${paymentCount.count}_btn" style="display:block;" 
       class="punchout">
      <a href="JavaScript:document.getElementById('punchout_${paymentCount.count}').
       submit();" style="color:white;">
      	<img src="https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif" 
           align="left" style="margin-right:7px;">
      </a>
      </div>
      </c:if>
  5. Para ocultar o botão Order quando o botão "Check out with PayPal" é exibido:
    1. Abra toolkitDir/workspace/Stores/WebContent/YourMadisonsStore/ShoppingArea/ CheckoutSection/SingleShipment/SingleShipmentSummary.jsp.
    2. Encontre o seguinte código. O código mostra o botão Order.
      <div class="left" id="WC_SingleShipmentSummary_div_31_2">
        <span class="primary_button button_fit" >
          <span class="button_container">
           <span class="button_bg">
      	<span class="button_top">
      	 <span class="button_bottom">   
      	   <a id = "singleOrderSummary" href="javascript:setCurrentId
              ('singleOrderSummary');CheckoutHelperJS.checkoutOrder(<c:out value="$
              {order.orderIdentifier.uniqueID}"/
              >,'<c:out value='${userType}'/>','<c:out value='
              ${addressListForMailNotification}'/>')">
      		   <fmt:message key="ORDER" bundle="${storeText}"/>
      	     </a>
      	   </span>
      	 </span>	
      	</span>
            </span>
         </span>	
      </div>
    3. Inclua <c:if test="${!hasPayPalMethod or (hasPayPalMethod and sessionInitialized)}"> antes do código, e </c:if> após o código, para fazer com que o botão Order seja exibido apenas quando o PayPal for usado e o token tiver sido recuperado.

Customizando PunchoutPaymentCallBackCmd

  1. Copie ExtPunchoutPaymentCallBackCmdImpl.java para o pacote com.ibm.commerce.payment.punchout.commands do projeto WebSphereCommerceServerExtensionsLogic.
  2. Execute a instrução SQL a seguir para registrar essa implementação de comando customizado:
    insert into cmdreg values(0,'com.ibm.commerce.payment.punchout.commands.
     PunchoutPaymentCallBackCmd' ,null, 
    'com.ibm.commerce.payment.punchout.commands.ExtPunchoutPaymentCallBackCmdImpl',
      null, null, 'Local', null);

Customizando PunchoutPaymentCallBack.jsp

Customize toolkitDir/workspace/Stores/WebContent/PunchoutPaymentCallBack.jsp para redirecionar o navegador para a página Order Confirmation:

  1. Inclua o código a seguir antes de if ("SimplePunchoutPlugin".equalsIgnoreCase(paymentMethod)) {:
    String storeId = (String) request.getAttribute("storeId");
    String catalogId = (String) request.getAttribute("catalogId");
    String langId = (String) request.getAttribute("langId");
    String orderId = (String) request.getAttribute("orderId");
    String shipmentTypeId = (String) request.getAttribute("shipmentTypeId");
  2. Inclua a cláusula else a seguir após a cláusula if para redirecionar o navegador para a página Order Summary:
    else if ("PayPal".equalsIgnoreCase(paymentMethod)){
    	response.sendRedirect("http://localhost/webapp/wcs/stores/servlet/
        SingleShipmentOrderSummaryView?catalogId="+catalogId+"&orderId="+orderId+
        "&storeId="+storeId);
    }

Registrando a ação em struts-config-ext.xml

  1. Abra toolkitDir/workspace/Stores/WebContent/WEB-INF/struts-config-ext.xml.
  2. Antes de </global-forwards>, inclua o seguinte:
    <forward className="com.ibm.commerce.struts.ECActionForward" name="PayPal/
     yourMadisonsStoreId" path="/Snippets/EDP/PaymentMethods/
     PayPal.jsp"/>
    	
    <forward className="com.ibm.commerce.struts.ECActionForward" 
     name="PunchoutPaymentCallBackView" path="/PunchoutPaymentCallBack.jsp">
    	<set-property property="properties" value="storeDir=no"/>
    </forward>
  3. Antes de </action-mappings>, inclua o seguinte:
    <action path="/PayPal" type="com.ibm.commerce.struts.BaseAction"/>

Registrando contas do PayPal Sandbox

Sandbox é um ambiente de teste de pagamento online, fornecido pelo PayPal, para teste de integração. É necessário registrar-se no Sandbox antes de realizar testes.

  1. Para registrar no Sandbox do PayPal:
    1. Acesse o Sandbox usando este link: https://developer.paypal.com/cgi-bin/devscr?cmd=_signup-run. Insira um endereço de e-mail real. Você receberá um e-mail após o registro.
    2. Ative a conta de acordo com o e-mail.
    3. Faça logon no PayPal usando o e-mail e senha registrados.
  2. Para criar uma conta pessoal:
    1. Acesse a página Test Accounts, como mostra a Figura 8, e clique no botão Preconfigured.
      Figura 8. Crie uma conta de teste
      Crie uma conta de teste
    2. Selecione Buyer como Account Type. Altere a senha para uma que seja fácil de lembrar, como 12345678, como mostra a Figura 9.
      Figura 9. Crie uma conta de comprador de teste
      Crie uma conta de comprador de teste
  3. Para criar uma conta de negócios:
    1. Na página Test Accounts, clique no botão Preconfigured.
    2. Selecione Seller como Account Type, conforme mostrado na Figura 10.
      Figura 10. Crie uma conta de vendedor de teste
      Crie uma conta de vendedor de teste
    3. Após a conta de teste ter sido criada, na página API Credentials, como mostra a Figura 11, há informações detalhadas sobre esta conta. Isso inclui um nome de usuário e senha e assinatura da API, que são usados mais tarde.
      Figura 11.Credenciais da API
      Credenciais da API

Configurando os valores da conta como informações do comerciante

Configure as credenciais da API como informações do comerciante da loja. Essas informações são usadas pelo plug-in do PayPal ao chamar as APIs do PayPal.

  1. Crie um comerciante fazendo login no WebSphere Commerce Accelerator com o usuário wcsadmin. Escolha sua loja com a qual trabalhar. No mesmo navegador, insira o seguinte:
    https://hostname:8000/webapp/wcs/admin/servlet/PPCMerchantEdit?actionName=
     create&merchantName=myMerchant

    Essa URL cria um comerciante chamado myMerchant. Observe que a janela do navegador retorna uma página em branco. Verifique se uma nova linha com esse valor de NAME foi inserida com a seguinte instrução SQL:

    SELECT * FROM MERCHANT WHERE NAME=’myMerchant’;

    Observe o valor de MERCHANT_ID para uso posterior.

  2. Associe o comerciante com a loja. Usando o mesmo navegador, insira a URL a seguir e substitua MERCHANT_ID com o valor da etapa anterior:
    https://hostname:8000/webapp/wcs/admin/servlet/PPCStoreMerchantAssociate?actionName=
     create&merchantId=MERCHANT_ID

    Essa URL cria uma associação com a loja Madisons. Observe que a janela do navegador retorna uma página em branco. Verifique se uma nova linha com esse valor de MERCHANT_ID foi criada com a seguinte instrução SQL:

    SELECT * FROM STOREMERCH WHERE MERCHANT_ID=MERCHANT_ID;
  3. Crie uma configuração de comerciante. Usando a mesma janela de navegador, insira a URL a seguir e substitua MERCHANT_ID com o valor da etapa anterior:
    https://hostname:8000/webapp/wcs/admin/servlet/PPCMerchantConfigurationEdit?
     actionName=create&merchantId=MERCHANT_ID&
     paymentConfigurationGroup=default&paymentSystemName=PayPal

    Essa URL cria uma configuração de comerciante. Observe que a janela do navegador retorna uma página em branco. Verifique se uma nova linha com esse valor de MERCHANT_ID foi inserida com a seguinte instrução SQL:

    SELECT * FROM MERCHCONF WHERE MERCHANT_ID=MERCHANT_ID;

    Observe o valor de MERCHCONF_ID para uso posterior.

  4. Crie as informações de configuração do comerciante. Usando a mesma janela do navegador, insira as URLs a seguir e substitua MERCHCONF_ID com o valor anotado na etapa anterior:
    https://hostname:8000/webapp/wcs/admin/servlet/PPCMerchantConfigurationInfoEdit?
     actionName=create&merchantConfId=MERCHANT_ID&propertyName_1=USER
     &propertyValue_1=ValueOfUser&propertyName_2=PWD&propertyValue_2=
     ValueOfPassword&propertyName_3=SIGNATURE&propertyValue_3=
     ValueOfSignature

    Os valores de USER, PWD e SIGNATURE são o Nome de Usuário, Senha e Assinatura da API, mostrados na página de credenciais da API após a conta de negócios ter sido criada. Por exemplo:

    https://localhost:8000/webapp/wcs/admin/servlet/PPCMerchantConfigurationInfoEdit?
     actionName=create&merchantConfId=10001&propertyName_1=USER&propertyValue_1=
     song_2_1292209255_biz_api1.sohu.com&propertyName_2=PWD&propertyValue_2=1292209264
     &propertyName_3=SIGNATURE&propertyValue_3=AnuqAWRi7my4.
     hv1OR-5hrTorkajAQyLbDhjfZO0f4m2kvS6Y9O45Fur

    Essa URL cria um conjunto de entradas de configuração de comerciante que armazena as informações da conta do PayPal. Observe que a janela do navegador retorna uma página em branco. Verifique se essas três novas linhas com esse valor de MERCHCONF_ID foram inseridas com a seguinte instrução SQL:

    SELECT * FROM MERCHCONFINFO WHERE MERCHCONF_ID=MERCHCONF_ID;

    Os valores são criptografados.

Importando o certificado digital do PayPal

  1. Obtenha o certificado do PayPal:
    1. Visualize https://api-3t.sandbox.paypal.com/nvp, clique com o botão direito na página e clique em Certificates.
    2. Na janela Certificate, (Figura 12), alterne para a aba Details e clique em Copy to File.
      Figura 12. Exporte o certificado
      Exporte o certificado
    3. Quando o Export Wizard do certificado aparecer, clique em Next.
    4. Selecione DER encoded binary X.509(.CER) e clique em Next .
    5. Navegue até um local para armazenar o certificado e clique em Next.
  2. Importe o certificado digital:
    1. Execute ikeyman.bat no caminho toolkitDir/wasprofile/bin/.
    2. Clique no ícone Open (Figura 13) e escolha PKCS12 como o tipo de banco de dados de chaves.
    3. Clique em Browse, escolha o arquivo trust.p12 no caminho toolkitDir/wasprofile/config/cells/localhost/nodes/localhost/ e, em seguida, clique em OK.
      Figura 13. Importe o certificado 1
      Importe o certificado 1
    4. Insira WebAS como a senha na janela de senha, e clique em OK.
    5. Selecione Signer Certificates (Figura 14) e clique no botão Add.
    6. Navegue à procura do arquivo de certificado que você exportou anteriormente, e clique em OK.
      Figura 14. Importe o certificado 2
      Importe o certificado 2
    7. Insira um rótulo para o certificado, como mostra a Figura 15, e clique em OK.
      Figura 15. Importe o certificado 3
      Importe o certificado 3
    8. Como mostra a Figura 16, o certificado foi importado com sucesso para o banco de dados de chaves.
      Figura 16. Importe o certificado 4
      Importe o certificado 4

Testando a integração

  1. Publique novamente o servidor WebSphere Commerce.
  2. Inclua um produto no carrinho.
  3. Escolha PayPal como forma de pagamento.
  4. Na página Order summary, clique em Check out with PayPal.
  5. O navegador é redirecionado para o PayPal. Na página do PayPal, faça login com o e-mail e senha de login da sua conta pessoal, semelhante ao mostrado na Figura 17.
    Figura 17. Faça logon no PayPal com uma conta pessoal
    Figura 17. Faça logon no PayPal com uma conta pessoal
  6. Clique em Continue na próxima página. O navegador é redirecionado de volta à página Order Summary do WebSphere Commerce.
  7. Na página Order Summary, clique no botão Order. O pedido é processado com êxito.

Implementando em um ambiente de produção

Você concluiu as etapas anteriores em um ambiente do kit de ferramentas, para a conveniência do desenvolvimento e teste de unidade. Você pode agora implementar em um ambiente de produção do WebSphere Commerce.

Siga as mesmas etapas acima, mas leve em consideração os seguintes pontos, que são diferentes da realização das etapas em um ambiente de kit de ferramentas:

  1. Ao implementar o projeto Payments-Plugin-PayPal no kit de ferramentas, é necessário importar e incluir o projeto nos módulos do WebSphere Commerce. Para o ambiente de tempo de execução, é necessário empacotar o projeto Payments-Plugin-PayPal do kit de ferramentas em um arquivo JAR (consulte Packaging Java EE assets for an entire module no Centro de Informações), e em seguida implementar no servidor WebSphere Commerce como um EJB (consulte Deploying J2EE assets for an entire module no Centro de Informações.
  2. Para a seção Importing PayPal’s digital certificate, é necessário exportar e importar o certificado usando a URL de express checkout real do PayPal (https://www.paypal.com) em vez da URL da Sandbox.
  3. Registre uma conta PayPal real em vez de uma conta de teste de Sandbox, caso queira usar a forma de pagamento do PayPal para lojas online. Em seguida, configure USER, PWD e SIGNATURE da conta de negócios real do PayPal como as informações de configuração do comerciante.
  4. Lembre-se de alterar os parâmetros a seguir em PluginDeployment.xml, de acordo com o nome de host do servidor WebSphere Commerce e a URL real do PayPal Express Checkout. Consulte o Guia de Integração de PayPal Checkout para ver como solicitar a conta.
    <PluginProperty name="initializationBaseURL" value="https://api-3t.sandbox.
     paypal.com/nvp" />
    <PluginProperty name="authenticationBaseURL" value=
     "https://www.sandbox.paypal.com/cgi-bin/webscr" />
    <PluginProperty name="RETURNURL" value="http://localhost/webapp/wcs/stores/
     servlet/PunchoutPaymentCallBack" />
    <PluginProperty name="CANCELURL" value="http://localhost/webapp/wcs/stores/ 
      servlet/PunchoutPaymentCallBack" />
  5. Para ExtPunchoutPaymentCallBackCmdImpl.java, coloque o arquivo de classe no mesmo pacote que o WebSphereCommerceServerExtensionsLogic.jar do tempo de execução, como uma correção.

Conclusão

Este tutorial mostrou como integrar PayPal com a loja de iniciante Madisons do WebSphere Commerce; como o fluxo do PayPal Express Checkout funciona; a diferença entre um fluxo de pedido normal e um fluxo do PayPal Express Checkout; e como testar na Sandbox do PayPal. Com este tutorial, você agora pode integrar WebSphere Commerce com PayPal facilmente.


Downloads

DescriçãoNomeTamanho
Code samplePayments-Plugin-PayPal.zip124KB
Code sampleSample-files.zip6KB

Recursos

Aprender

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=WebSphere
ArticleID=657825
ArticleTitle=Integrando PayPal com WebSphere Commerce V7
publish-date=07202011