Приступая к работе, вы узнаете, как быстро начать использовать J2pay.
Скачать
J2Pay доступен на Maven.
|
1
2
3
4
5
|
<dependency> <groupId>com.tranxactive</groupId> <artifactId>j2pay</artifactId> <version>2.4.0</version> </dependency> |
Вы также можете скачать файл jar здесь
пример
В этом примере мы выполним транзакции покупки и повторной оплаты . Сначала мы получим нужный шлюз т.е. Авторизуйтесь
|
1
|
Gateway gateway = GatewayFactory.getGateway(AvailableGateways.AUTHORIZE); |
Поскольку мы работаем над тестовой средой, мы включим тестовый режим.
|
1
|
gateway.setTestMode(true); |
Далее мы попросим библиотеку показать нам, каковы параметры API для этого шлюза.
|
1
2
3
4
5
|
JSONObject apiSampleParameters = gateway.getApiSampleParameters(); System.out.println(apiSampleParameters) //output {"name":"also called api user name / api login id","transactionKey":"the transaction key"} |
Как мы видим из вывода, библиотека сообщает нам, что для шлюза авторизации требуются два параметра API name иactionKey. Теперь мы будем заполнять эти поля нашими торговыми ценностями.
|
1
2
|
apiSampleParameters.put("name", "<your account's user name here>"); apiSampleParameters.put("transactionKey", "<your account's transaction key here>"); |
Далее мы будем использовать классы Customer и CustomerCard для передачи информации в метод покупки.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
|
Customer customer = new Customer(); customer .setFirstName("test first name") .setLastName("test last name") .setCountry(Country.US) .setState("TX") .setCity("test city") .setAddress("test address") .setZip("12345") .setPhoneNumber("1234567890") .setEmail("email@domain.com") .setIp("127.0.0.1"); CustomerCard customerCard = new CustomerCard(); customerCard .setName("test card name") .setNumber("5424000000000015") //Authorize test card .setCvv(123) .setExpiryMonth("01") .setExpiryYear("2022"); |
покупка
Мы все готовы вызвать метод покупки
|
1
|
HTTPResponse purchaseResponse = gateway.purchase(apiSampleParameters, customer, customerCard, Currency.USD, 2.5f); |
Обработка ответа на покупку
Теперь мы можем проверить, была ли транзакция успешной или неудачной.
|
1
2
3
|
if(purchaseResponse.isSuccessful()){ //some code } |
Чтобы распечатать полный ответ см ниже фрагмент
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
System.out.println(purchaseResponse.getJSONResponse()); //output { "lr": { "success": true, "message": "SUCCESS", "transactionId": "3902990127", "amount": 45, "cardExpiryYear": "2017", "cardFirst6": "601160", "cardExpiryMonth": "12", "maskedCard": "601160******6611", "rebillParams": { "customerVaultId": "174302554" }, "voidParams": { "transactionId": "3902990127" }, "currencyCode": "USD", "cardLast4": "6611", "refundParams": { "transactionId": "3902990127" } }, "gr": { // long gateway response } } |
Запись
Ответ подробно описан в разделе «Ответы API». Для этого примера единственное, что вам следует знать, это ответ шлюза, разделенный на два ключа.
- lr, ответ библиотеки
- gr, ответ шлюза
Ответ библиотеки содержит только те значения, которые, по мнению библиотеки, важны для вас и могут быть полезны для дальнейших действий, таких как refund / void / rebill. Помните, что в ответе библиотеки уже подготовлены параметры, необходимые для дальнейших действий в этой транзакции. то есть возврат, повторное перечисление или аннулирование.
ребилл
Помните, что мы сохранили ответ на покупку в переменной purchaseResponse. Ниже приведен код, показывающий, как выполнить транзакцию повторного платежа всего за две строки.
|
1
2
|
JSONObject rebillParams = purchaseResponse.getJSONObject("lr").getJSONObject("rebillParams"); HTTPResponse rebillResponse = gateway.rebill(apiSampleParameters, rebillParams, 50); |
Поздравляем с полным руководством по началу работы. Пожалуйста, не стесняйтесь писать нам на info@tranxactive.com
Вы также можете увидеть подробный пример здесь .
| Опубликовано на Java Code Geeks с разрешения Мухаммеда Ильяса, партнера нашей программы JCG. Смотрите оригинальную статью здесь: Начало работы
Мнения, высказанные участниками Java Code Geeks, являются их собственными. |