Используйте payerId из PayPal для завершения платежа - PullRequest
0 голосов
/ 17 июня 2019

В последние несколько дней я работаю над интеграцией PayPal и не смог найти правильный способ использования возвращенного в URL перенаправления payerId, необходимого для завершения платежа.

Это то, что яПосле того, как пользователь нажал кнопку оплаты на нашем веб-сайте, я вызываю указанный ниже метод в java с помощью вызова службы Angular

@RequestMapping(value = "/payment", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> makePayment() {

    Map<String, Object> response = new HashMap<String, Object>();
    String redirectUrl = "";
    try {

        APIContext apiContext = new APIContext(CLIENT_ID, CLIENT_SECRET, EXECUTION_MODE);
        Payment crunchifyPayment = new Payment();

        Amount amount = new Amount();
        amount.setCurrency("USD");
        //Total Subscription charge for Orion 
        amount.setTotal("1.00");

        Transaction transaction = new Transaction();
        transaction.setAmount(amount);
        List<Transaction> transactions = new ArrayList<Transaction>();
        transactions.add(transaction);

        Payer payer = new Payer();
        payer.setPaymentMethod("paypal");

        Payment payment = new Payment();
        payment.setIntent("sale");
        payment.setPayer(payer);
        payment.setTransactions(transactions);

        RedirectUrls redirectUrls = new RedirectUrls();
        redirectUrls.setCancelUrl(CANCEL_URL);
        redirectUrls.setReturnUrl(RETURN_URL);
        payment.setRedirectUrls(redirectUrls);
        Payment createdPayment = payment.create(apiContext);
        Iterator<Links> links = createdPayment.getLinks().iterator();
        while (links.hasNext()) {
            Links link = links.next();
            if (link.getRel().equalsIgnoreCase("approval_url")) {
                redirectUrl = link.getHref();
                break;
            }
        }
        response.put("status", "success");
        response.put("redirect_url", redirectUrl);
    } catch (PayPalRESTException e) {
        // Handle errors
    } catch (Exception ex) {
        // Handle errors
    }
    return response;
}

, и возвращаемым ответом будет URL, который я использую для перенаправления.

  this.commonService.pay().subscribe((response: any) => {
        if (response && response.status === 'success') {
          window.location.href = response.redirect_url;
        }
      });

. Пользователь переходит на страницу подтверждения платежа PayPal, а в случае успешной оплаты он перенаправляется на URL-адрес возврата.

http://localhost:8080/orion-web/app/#/paypalPayment

наКакой PayPal добавит еще 3 аргумента, таких как PayerId, Token и PayId, и, наконец, возвращенный URL PayPal будет выглядеть примерно так:

http://localhost:8080/orion-web/app/#/paypalPayment&payerId='32432432'&toke='gfdgdgd'&payId='fdsfs';

Мой вопрос: как использовать этот URL?Должен ли я обрабатывать его на угловой стороне или на стороне java?Мне нужен PayerId, возвращенный PayPal для завершения моей транзакции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...