2015-07-31 2 views
0

Я создал этот простой пример PayPal курьерская с JSF:Печать счета и перенаправление на страницу в JSF страницы

XHTML:

<h:form target="_blank"> 
    <h:commandButton value="paypal" action="#{pricingCalculator.initPayPal}" image="https://www.sandbox.paypal.com/en_US/i/btn/btn_buynowCC_LG.gif"/> 
</h:form> 

Java код:

public void initPayPal() throws SSLConfigurationException, InvalidCredentialException, IOException, HttpErrorException, InvalidResponseDataException, ClientActionRequiredException, MissingCredentialException, InterruptedException, OAuthException, ParserConfigurationException, com.paypal.exception.SSLConfigurationException, com.paypal.exception.InvalidCredentialException, com.paypal.exception.HttpErrorException, com.paypal.exception.InvalidResponseDataException, com.paypal.exception.ClientActionRequiredException, com.paypal.exception.MissingCredentialException, com.paypal.sdk.exceptions.OAuthException, org.xml.sax.SAXException 
    { 
     PaymentDetailsType paymentDetails = new PaymentDetailsType(); 
     paymentDetails.setPaymentAction(PaymentActionCodeType.fromValue("Sale")); 
     PaymentDetailsItemType item = new PaymentDetailsItemType(); 
     BasicAmountType amt = new BasicAmountType(); 
     amt.setCurrencyID(CurrencyCodeType.fromValue("USD")); 
     double itemAmount = 1.00; 
     amt.setValue(String.valueOf(itemAmount)); 
     int itemQuantity = 1; 
     item.setQuantity(itemQuantity); 
     item.setName("item"); 
     item.setAmount(amt); 

     List<PaymentDetailsItemType> lineItems = new ArrayList<PaymentDetailsItemType>(); 
     lineItems.add(item); 
     paymentDetails.setPaymentDetailsItem(lineItems); 
     BasicAmountType orderTotal = new BasicAmountType(); 
     orderTotal.setCurrencyID(CurrencyCodeType.fromValue("USD")); 
     orderTotal.setValue(String.valueOf(itemAmount * itemQuantity)); 
     paymentDetails.setOrderTotal(orderTotal); 
     List<PaymentDetailsType> paymentDetailsList = new ArrayList<PaymentDetailsType>(); 
     paymentDetailsList.add(paymentDetails); 

     SetExpressCheckoutRequestDetailsType setExpressCheckoutRequestDetails = new SetExpressCheckoutRequestDetailsType(); 
     setExpressCheckoutRequestDetails.setReturnURL("http://devtools-paypal.com/guide/expresscheckout/java?success=true"); 
     setExpressCheckoutRequestDetails.setCancelURL("http://devtools-paypal.com/guide/expresscheckout/java?cancel=true"); 

     setExpressCheckoutRequestDetails.setPaymentDetails(paymentDetailsList); 

     SetExpressCheckoutRequestType setExpressCheckoutRequest = new SetExpressCheckoutRequestType(setExpressCheckoutRequestDetails); 
     setExpressCheckoutRequest.setVersion("104.0"); 

     SetExpressCheckoutReq setExpressCheckoutReq = new SetExpressCheckoutReq(); 
     setExpressCheckoutReq.setSetExpressCheckoutRequest(setExpressCheckoutRequest); 

     Map<String, String> sdkConfig = new HashMap<String, String>(); 
     sdkConfig.put("mode", "sandbox"); 
     sdkConfig.put("acct1.UserName", "peter.penzov_api1.gmail.com"); 
     sdkConfig.put("acct1.Password", "5LQB5QHQJVKP9QKN"); 
     sdkConfig.put("acct1.Signature", "AFcWxV21C7fd0v3bYYYRCpSSRl31A6JqBNQNOE3.Jwxfs7nIV1jR7qcl"); 
     PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(sdkConfig); 
     SetExpressCheckoutResponseType setExpressCheckoutResponse = service.setExpressCheckout(setExpressCheckoutReq); 

     String token = setExpressCheckoutResponse.getToken(); 

     String link = "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=" + token; 

     ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext(); 
     externalContext.redirect(link); 
    } 

Я могу успешно выполнить платеж, но когда я нажимаю кнопку оплаты, я перенаправляется на. 210 Я хотел бы распечатать счет Paypal? Какой код Java мне нужно добавить?

После того, как я успешно выполнил платеж, я хочу, чтобы меня перенаправили на страницу JSF, но со старыми данными. Как я могу сохранить старые данные? Может быть, мне нужно использовать компонент Session scope?

+0

Да, используйте сессионные компоненты или просматривайте. Все основные вещи jsf, а не связанные с PayPal. Точно так же, как часть вопроса о PayPal не связана с jsf. Пожалуйста, сосредоточьте свои вопросы (= кроме того, зная, что это такое, о, также один вопрос на вопрос) – Kukeltje

ответ

0

В SetExpressCheckout просто измените URL-адрес возврата на свой собственный URL-адрес возврата, и вам должно быть хорошо идти.

Смежные вопросы