Получить данные карты, через которые производится оплата через API PayPal на Java - PullRequest
0 голосов
/ 27 февраля 2019

Я использую PayPal API классы для осуществления платежа в Java моего приложения.У меня есть три карты на моем счету «песочницы» PayPal: Master, Visa и American Express.

Я устанавливаю необходимую информацию перед выполнением платежа, я прилагаю код для того же.

// ###Details
        Details details = new Details();
        details.setShipping("0");
        details.setSubtotal("1");
        details.setTax("0");

        // ###Amount
        Amount amount = new Amount();
        amount.setCurrency(jobLine.getCurrency());
        amount.setTotal("1");
        amount.setDetails(details);

        // ###Transaction
        Transaction transaction = new Transaction();
        transaction.setAmount(amount);
        transaction.setDescription("This is the payment transaction for vetjobs.com.au");

        // ### Items
        Item item = new Item();
        item.setName("vetjob post job").setQuantity("1").setCurrency(jobLine.getCurrency()).setPrice("1");
        ItemList itemList = new ItemList();
        List<Item> items = new ArrayList<Item>();
        items.add(item);
        itemList.setItems(items);

        transaction.setItemList(itemList);

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

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

        // ###Payment

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

Итак, карта не определена до совершения платежа, она станет известна после совершения платежа.

И теперь я произвел оплату с помощью Visa и хочу отобразить это имя карты на своей странице jsp.Итак, как получить эти детали?

Ответы [ 2 ]

0 голосов
/ 19 апреля 2019

Я решил ваш запрос.Вот ответ

Функция для получения сведений о карте.

public Map<String, Object> getCardDetails() throws PayPalRESTException {
        Map<String, Object> response = new HashMap<String, Object>();
        try {
            APIContext context = new APIContext(clientId, clientSecret, "sandbox");
            CreditCard creditCard = CreditCard.get(context, "CARD-9D2462350Y753123NLS4YVTY");
            response.put("status", "sucsess");
            response.put("Details", creditCard);
            return response;

        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

API для получения сведений о карте

@RequestMapping(value = "cardDetails", method = RequestMethod.GET)
    public ResponseEntity<Map<String, Object>> cardDetails() {
        Map<String, Object> response = new HashMap<String, Object>();
        Map<String, Object> data = new HashMap<String, Object>();
        try {
            Map<String, Object> cardResponse = paypalVaultPaymentService.getCardDetails();

            String json = cardResponse.get("Details").toString();
            Map<String, Object> map = toMap(new JSONObject(json));
            data.put("cardDetails", map);
            response.put("data", data);
            response.put("status", "OK");
            response.put("code", "200");
            response.put("message", "Card Details Found successfully.");
            return new ResponseEntity<Map<String, Object>>(response, HttpStatus.OK);

        } catch (Exception e) {
            e.printStackTrace();
            response.put("status", "ERROR");
            response.put("code", "500");
            response.put("message", "Something went wrong");
            return new ResponseEntity<Map<String, Object>>(response, HttpStatus.INTERNAL_SERVER_ERROR);
        }
    }

public static Map<String, Object> toMap(JSONObject object) throws JSONException {
        Map<String, Object> map = new HashMap<String, Object>();

        Iterator<String> keysItr = object.keys();
        while (keysItr.hasNext()) {
            String key = keysItr.next();
            Object value = object.get(key);

            if (value instanceof JSONArray) {
                value = toList((JSONArray) value);
            }

            else if (value instanceof JSONObject) {
                value = toMap((JSONObject) value);
            }
            map.put(key, value);
        }
        return map;
    }

    public static List<Object> toList(JSONArray array) throws JSONException {
        List<Object> list = new ArrayList<Object>();
        for (int i = 0; i < array.length(); i++) {
            Object value = array.get(i);
            if (value instanceof JSONArray) {
                value = toList((JSONArray) value);
            }

            else if (value instanceof JSONObject) {
                value = toMap((JSONObject) value);
            }
            list.add(value);
        }
        return list;
    }
0 голосов
/ 19 апреля 2019

когда вы сохраняете кредитную карту, она возвращает идентификатор card_id, например «CARD-1SW33690TH184423CKM2Z». Вы можете получить данные карты, используя card_id.Попробуйте этот запрос, чтобы получить данные карты

Sample Request
    curl -v -X GET https://api.sandbox.paypal.com/v1/vault/credit-cards/CARD-54E6956910402550WKGRL6EA \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer Access-Token"

Sample Response

{
  "valid_until": "2016-05-26T00:00:00Z",
  "first_name": "Joe",
  "last_name": "Shopper",
  "expire_month": "11",
  "state": "ok",
  "billing_address": {
    "city": "Johnstown",
    "state": "OH",
    "postal_code": "43210",
    "country_code": "US",
    "line1": "52 N. Main St."
  },
  "expire_year": "2018",
  "number": "0000000000000000",
  "type": "visa",
  "id": "CARD-54E6956910402550WKGRL6EA",
  "links": [
    {
      "href": "https://api.sandbox.paypal.com/v1/vault/credit-card/CARD-54E6956910402550WKGRL6EA",
      "method": "GET",
      "rel": "self"
    },
    {
      "href": "https://api.sandbox.paypal.com/v1/vault/credit-card/CARD-54E6956910402550WKGRL6EA",
      "method": "DELETE",
      "rel": "delete"
    },
    {
      "href": "https://api.sandbox.paypal.com/v1/vault/credit-card/CARD-54E6956910402550WKGRL6EA",
      "method": "PATCH",
      "rel": "patch"
    }
  ]
}

Для получения дополнительной информации об интеграции PayPal Vault вы можете посетить: [https://developer.paypal.com/docs/api/vault/v1/#credit-cards_get]

Для получения кода вы можете посетить: [https://github.com/paypal/PayPal-Java-SDK/blob/master/rest-api-sample/src/main/java/com/paypal/api/payments/servlet/GetCreditCardServlet.java][1]

Дайте мне знать, если все еще не работает Спасибо

...