Java 在Paypal Express签出中添加多个项目
我想将第二项添加到我用于快速签出的Java代码中:Java 在Paypal Express签出中添加多个项目,java,paypal,paypal-adaptive-payments,paypal-rest-sdk,Java,Paypal,Paypal Adaptive Payments,Paypal Rest Sdk,我想将第二项添加到我用于快速签出的Java代码中: public void initPayPal() { PaymentDetailsType paymentDetails = new PaymentDetailsType(); paymentDetails.setPaymentAction(PaymentActionCodeType.SALE); PaymentDetailsItemType item = new PaymentDeta
public void initPayPal()
{
PaymentDetailsType paymentDetails = new PaymentDetailsType();
paymentDetails.setPaymentAction(PaymentActionCodeType.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);
}
public void initPayPal()
{
PaymentDetailsType paymentDetails=新的PaymentDetailsType();
paymentDetails.setPaymentAction(PaymentActionCodeType.SALE);
PaymentDetailsItemType项目=新的PaymentDetailsItemType();
BasicAmountType金额=新的BasicAmountType();
金额设置CurrencyId(CurrencyCodeType.fromValue(“美元”);
双项金额=1.00;
amt.setValue(String.valueOf(itemAmount));
int itemQuantity=1;
item.setQuantity(itemQuantity);
项目名称(“项目”);
项目.设定金额(金额);
List lineItems=new ArrayList();
行项目。添加(项目);
paymentDetails.setPaymentDetailsItem(行项目);
BasicAmountType orderTotal=新的BasicAmountType();
orderTotal.setCurrencyID(CurrencyCodeType.fromValue(“USD”));
orderTotal.setValue(String.valueOf(itemAmount*itemQuantity));
paymentDetails.setOrderTotal(orderTotal);
List paymentDetailsList=new ArrayList();
paymentDetailsList.add(paymentDetails);
SetExpressCheckoutRequestDetailsType setExpressCheckoutRequestDetails=新建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=新建SetExpressCheckoutRequestType(setExpressCheckoutRequestDetails);
setExpressCheckoutRequest.setVersion(“104.0”);
SetExpressCheckoutReq SetExpressCheckoutReq=新SetExpressCheckoutReq();
setExpressCheckoutReq.setSetExpressCheckoutRequest(setExpressCheckoutRequest);
Map sdkConfig=new HashMap();
sdkConfig.put(“模式”、“沙盒”);
sdkConfig.put(“acct1.UserName”,“peter.penzov_api1.gmail.com”);
sdkConfig.put(“账户密码”、“5LQB5QHQJVKP9QKN”);
sdkConfig.put(“账户签名”、“AFCWXV21C7FD0V3BYYRCPSSRL31A6JQBNQNOE3.Jwxfs7nIV1jR7qcl”);
PayPalAPIInterfaceServiceService=新的PayPalAPIInterfaceServiceService(sdkConfig);
SetExpressCheckoutResponseType setExpressCheckoutResponse=service.setExpressCheckout(setExpressCheckoutReq);
String token=setExpressCheckoutResponse.getToken();
字符串链接=”https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-签出和令牌=“+令牌;
ExternalContext ExternalContext=FacesContext.getCurrentInstance().getExternalContext();
重定向(链接);
}
如何将第二个项目添加到项目列表中:
这个问题有什么解决办法吗
我找不到任何可以用来解决这个问题的好例子
PS
我测试了这段代码:
public void initPayPal()
{
PaymentDetailsType paymentDetails = new PaymentDetailsType();
paymentDetails.setPaymentAction(PaymentActionCodeType.SALE);
PaymentDetailsItemType item = new PaymentDetailsItemType();
BasicAmountType amt = new BasicAmountType();
amt.setCurrencyID(CurrencyCodeType.fromValue("USD"));
amt.setValue(String.valueOf(totalPrice));
int itemQuantity = 1;
item.setQuantity(itemQuantity);
item.setName("item 1");
item.setAmount(amt);
//this is now "item2"
PaymentDetailsItemType item2 = new PaymentDetailsItemType();
BasicAmountType amt2 = new BasicAmountType();
amt2.setCurrencyID(CurrencyCodeType.fromValue("USD"));
double itemAmount2 = 1.00;
amt2.setValue(String.valueOf(itemAmount2));
int itemQuantity2 = 1;
item2.setQuantity(itemQuantity2);
item2.setName("item 2");
item2.setAmount(amt2);
//add item2 to your lineItems List
List<PaymentDetailsItemType> lineItems = new ArrayList<PaymentDetailsItemType>();
lineItems.add(item);
lineItems.add(item2);
paymentDetails.setPaymentDetailsItem(lineItems);
BasicAmountType orderTotal = new BasicAmountType();
orderTotal.setCurrencyID(CurrencyCodeType.fromValue("USD"));
orderTotal.setValue(String.valueOf(totalPrice * itemQuantity));
paymentDetails.setOrderTotal(orderTotal);
List<PaymentDetailsType> paymentDetailsList = new ArrayList<PaymentDetailsType>();
paymentDetailsList.add(paymentDetails);
SetExpressCheckoutRequestDetailsType setExpressCheckoutRequestDetails = new SetExpressCheckoutRequestDetailsType();
setExpressCheckoutRequestDetails.setReturnURL("http://52.25.168.28:8080/Web_site/summary_payment.xhtml");
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);
}
public void initPayPal()
{
PaymentDetailsType paymentDetails=新的PaymentDetailsType();
paymentDetails.setPaymentAction(PaymentActionCodeType.SALE);
PaymentDetailsItemType项目=新的PaymentDetailsItemType();
BasicAmountType金额=新的BasicAmountType();
金额设置CurrencyId(CurrencyCodeType.fromValue(“美元”);
amt.setValue(String.valueOf(totalPrice));
int itemQuantity=1;
item.setQuantity(itemQuantity);
项目名称(“项目1”);
项目.设定金额(金额);
//现在是“项目2”
PaymentDetailsItemType item2=新的PaymentDetailsItemType();
BasicAmountType amt2=新的BasicAmountType();
amt2.setCurrencyID(CurrencyCodeType.fromValue(“USD”);
双项金额2=1.00;
amt2.setValue(String.valueOf(itemAmount2));
int itemQuantity2=1;
项目2.设置数量(项目数量2);
项目2.集合名(“项目2”);
项目2.设定金额(amt2);
//将项目2添加到行项目列表中
List lineItems=new ArrayList();
行项目。添加(项目);
行项目。添加(项目2);
paymentDetails.setPaymentDetailsItem(行项目);
BasicAmountType orderTotal=新的BasicAmountType();
orderTotal.setCurrencyID(CurrencyCodeType.fromValue(“USD”));
orderTotal.setValue(String.valueOf(totalPrice*itemQuantity));
paymentDetails.setOrderTotal(orderTotal);
List paymentDetailsList=new ArrayList();
paymentDetailsList.add(paymentDetails);
SetExpressCheckoutRequestDetailsType setExpressCheckoutRequestDetails=新建SetExpressCheckoutRequestDetailsType();
setExpressCheckoutRequestDetails.setReturnURL(“http://52.25.168.28:8080/Web_site/summary_payment.xhtml");
setExpressCheckoutRequestDetails.setCancelURL(“http://devtools-paypal.com/guide/expresscheckout/java?cancel=true");
setExpressCheckoutRequestDetails.setPaymentDetails(paymentDetailsList);
SetExpressCheckoutRequestType setExpressCheckoutRequest=新建SetExpressCheckoutRequestType(setExpressCheckoutRequestDetails);
setExpressCheckoutRequest.setVersion(“104.0”);
SetExpressCheckoutReq SetExpressCheckoutReq=新SetExpressCheckoutReq();
setExpressCheckoutReq.setSetExpressCheckoutRequest(setExpressCheckoutRequest);
Map sdkConfig=new HashMap();
sdkConfig.put(“模式”、“沙盒”);
sdkConfig.put(“acct1.UserName”,“peter.penzov_api1.gmail.com”);
sdkConfig.put(“账户密码”、“5LQB5QHQJVKP9QKN”);
sdkConfig.put(“账户签名”、“AFCWXV21C7FD0V3BYYRCPSSRL31A6JQBNQNOE3.Jwxfs7nIV1jR7qcl”);
PayPalAPIInterfaceServiceService=新的PayPalAPIInterfaceServiceService(sdkConfig);
SetExpressCheckoutResponseType setExpressCheckoutResponse=service.setExpressCheckout(setExpressCheckoutReq);
字符串标记=setExpressCheckoutRe