Я создал этот простой пример 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?
Да, используйте сессионные компоненты или просматривайте. Все основные вещи jsf, а не связанные с PayPal. Точно так же, как часть вопроса о PayPal не связана с jsf. Пожалуйста, сосредоточьте свои вопросы (= кроме того, зная, что это такое, о, также один вопрос на вопрос) – Kukeltje