如何在java代码中以编程方式获取付款人id?

如何在java代码中以编程方式获取付款人id?,java,paypal,Java,Paypal,在我的代码中,我试图向Paypal REST API发送所需的信息,Paypal给我一个“批准”状态,但为了完成付款,我需要执行付款 payment.execute(accesstoken,paymentExecution)。。。但是我无法从响应中获取付款人id。 这是我的代码,以获取更多信息,并提前感谢您的帮助 public class PaypalPaymentWithCreditCardServlet { // private static final long seria

在我的代码中,我试图向Paypal REST API发送所需的信息,Paypal给我一个“批准”状态,但为了完成付款,我需要执行付款

payment.execute(accesstoken,paymentExecution)
。。。但是我无法从响应中获取付款人id。 这是我的代码,以获取更多信息,并提前感谢您的帮助

public class PaypalPaymentWithCreditCardServlet {    

   // private static final long serialVersionUID = 734220724945040319L;

   // @Override
    public void init () throws Exception {

        InputStream is = PaypalPaymentWithCreditCardServlet.class.getResourceAsStream("/sdk_config.properties");
        try {
                PayPalResource.initConfig(is);
        } catch (PayPalRESTException e) {
               // goto failure page. can't do anything without configuration file
            e.printStackTrace();
        }
    }



    public boolean doPost (PaymentPojo paymentpojo) throws Exception {

        try {

            String accessToken = GenerateAccessToken.getAccessToken();            
            APIContext apiContext = new APIContext(accessToken);

            final Payment payment = new PaymentBuilder().setBillingAddress(paymentpojo.getBillingAddress())
                                                        .setCreditCard(paymentpojo.getCreditCard())
                                                        .setPaymentDetail(paymentpojo.getDetails())
                                                        .setTransactionAmount(paymentpojo.getAmount())
                                                        .build();

            Payment createdPayment = payment.create(apiContext);            

            System.out.println(Payment.getLastResponse());

            System.out.println(String.format("created payment with id [%s] and status=[%s]", createdPayment.getId(), createdPayment.getState()));

            if(!createdPayment.getState().toLowerCase().equalsIgnoreCase(PaypalState.APPROVED.getStatus())) {

                // payment is not created. throw an exception
                System.out.println("Payment handshake did not go through!!!");

                return false;

            }


            // if it is not created throw exception

          //  payment.execute(accessToken, paymentExecution);



          return true;  

        } catch (PayPalRESTException e) {

        }
        return false;


    }

}

对于信用卡支付,payer_id是唯一的属性(例如电子邮件地址),用于在系统中标识用户,并且每次在payerID中为支付提供该属性

如果您不知道用户的信息,例如客人结账,则不需要提供payerID


对于paypal支付,始终需要提供付款人id,并在用户批准支付后将其附加到重定向url。完整文档位于

Thank you v.much@Avi Das。现在我遇到了一些问题…我已经用一个销售对象成功退款,但是我如何找到退款ID?我通过调用Sale.getLastResponse()获得了Json格式的id,但是我如何通过编程找到这个退款交易id?如果您的直接问题得到了回答,您介意接受答案吗?最好为您的新问题打开一个新问题,并将其链接到此处,以便其他开发人员可以更轻松地找到它。谢谢我很抱歉一个接一个地提问题。我接受上面提供的解决方案。我将遵循这些规则,以便其他开发人员能够从中受益。谢谢,这不是问题,不过请在这里随意评论你新问题的链接。