[ADD] MODIFICACIONES

parent b61c6ddc
......@@ -4,6 +4,7 @@ import org.json.JSONObject;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import web.multitask.trismegistoservices.services.BBVA.bbvaService;
import web.multitask.trismegistoservices.services.BBVA.bbvaUtils;
@RestController
@CrossOrigin(origins = "*")
......@@ -25,5 +26,28 @@ public class bbvaRest {
return ResponseEntity.ok(jsonResponse.toMap());
}
@PostMapping("/private/prepareRequest")
public ResponseEntity<?> getHeader(@RequestBody String json) {
bbvaUtils utils = new bbvaUtils();
String token = utils.getToken();
JSONObject jsonObject = new JSONObject(json);
if(token.isEmpty()){
return ResponseEntity.internalServerError().body(
new JSONObject()
.put("token","")
.put("message","No token generated")
.put("status",false));
}else{
String digest = utils.hashDigest(json);
String txt = utils.txtToSign(jsonObject ,digest);
String signature = utils.createSignature(txt);
System.out.println("token = "+token);
System.out.println("digest = "+digest);
System.out.println("signature = "+signature);
return ResponseEntity.ok(utils.peticionHTTP(token,digest,signature,jsonObject).toMap());
}
}
}
......@@ -3,6 +3,7 @@ package web.multitask.trismegistoservices.services.BBVA;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.stereotype.Service;
import java.util.Objects;
@Service
......@@ -10,20 +11,20 @@ public class bbvaService {
bbvaUtils utils = new bbvaUtils();
public JSONObject generalService(JSONObject json){
public JSONObject generalService(JSONObject json) {
JSONObject jsonBillResponse = queryBill(json);
if (jsonBillResponse.optBoolean("status",false)){
if (jsonBillResponse.optBoolean("status", false)) {
return generateQR(jsonBillResponse);
}else{
} else {
return jsonBillResponse;
}
}
private JSONObject queryBill(JSONObject json){
private JSONObject queryBill(JSONObject json) {
JSONObject returnMessage = new JSONObject();
int serviceID = json.optInt("service_id",0);
int serviceID = json.optInt("service_id", 0);
String actualServiceID;
switch (serviceID) {
......@@ -42,46 +43,46 @@ public class bbvaService {
}
String documentNumber = json.getString("document_number");
String endpoint = "/pe/bill-payments/v1/services/"+actualServiceID+"/bills";
String queryParamater = "?billReference.value="+documentNumber;
String endpoint = "/pe/bill-payments/v1/services/" + actualServiceID + "/bills";
String queryParamater = "?billReference.value=" + documentNumber;
String method = "get";
JSONObject jsonRequest = new JSONObject();
jsonRequest.put("endpoint",endpoint);
jsonRequest.put("extra",queryParamater);
jsonRequest.put("method",method);
jsonRequest.put("endpoint", endpoint);
jsonRequest.put("extra", queryParamater);
jsonRequest.put("method", method);
String token = utils.getToken();
String digest = utils.hashDigest(jsonRequest.toString());
String txt = utils.txtToSign(jsonRequest ,digest);
String txt = utils.txtToSign(jsonRequest, digest);
String signature = utils.createSignature(txt);
JSONObject jsonResponse = utils.peticionHTTP(token,digest,signature,jsonRequest);
JSONObject jsonResponse = utils.peticionHTTP(token, digest, signature, jsonRequest);
JSONArray dataFound = jsonResponse.optJSONArray("data", new JSONArray());
JSONObject firstElement = dataFound.optJSONObject(0, new JSONObject());
if(firstElement.isEmpty()){
if (firstElement.isEmpty()) {
returnMessage.put("message", "No se encontró ninguna deuda");
returnMessage.put("status", false);
return returnMessage;
}
int month = json.optInt("month",0);
int year = json.optInt("year",0);
int amount = json.optInt("amount",0);
int month = json.optInt("month", 0);
int year = json.optInt("year", 0);
int amount = json.optInt("amount", 0);
String monthString = utils.numberToMonth(month);
String numberElement = firstElement.optString("number","");
if(!(numberElement.contains(monthString) && numberElement.contains(String.valueOf(year)))){
returnMessage.put("message", "La deuda viegente no coincide con el "+monthString+" de "+year);
String numberElement = firstElement.optString("number", "");
if (!(numberElement.contains(monthString) && numberElement.contains(String.valueOf(year)))) {
returnMessage.put("message", "La deuda viegente no coincide con el " + monthString + " de " + year);
returnMessage.put("status", false);
return returnMessage;
}
String maturityDate = json.optString("maturity_date","");
String maturityDateElement = firstElement.optString("maturityDate","");
if(!Objects.equals(maturityDateElement, maturityDate)){
returnMessage.put("message", "La deuda no tiene la fecha de vencimiento correcta - "+maturityDateElement);
String maturityDate = json.optString("maturity_date", "");
String maturityDateElement = firstElement.optString("maturityDate", "");
if (!Objects.equals(maturityDateElement, maturityDate)) {
returnMessage.put("message", "La deuda no tiene la fecha de vencimiento correcta - " + maturityDateElement);
returnMessage.put("status", false);
return returnMessage;
}
......@@ -89,9 +90,9 @@ public class bbvaService {
JSONArray amounts = firstElement.optJSONArray("amounts", new JSONArray());
JSONObject firstAmount = amounts.optJSONObject(0, new JSONObject());
JSONObject amountValue = firstAmount.optJSONObject("amountValue", new JSONObject());
int amountElement = amountValue.optInt("amount",0);
if(amountElement != amount){
returnMessage.put("message", "El monto de la deuda no es correcto - "+amountElement);
int amountElement = amountValue.optInt("amount", 0);
if (amountElement != amount) {
returnMessage.put("message", "El monto de la deuda no es correcto - " + amountElement);
returnMessage.put("status", false);
return returnMessage;
}
......@@ -106,7 +107,7 @@ public class bbvaService {
return returnMessage;
}
public JSONObject generateQR(JSONObject json){
public JSONObject generateQR(JSONObject json) {
JSONObject returnMessage = new JSONObject();
......@@ -128,7 +129,7 @@ public class bbvaService {
String additionalPaymentFieldId = "0";
String additionalPaymentFieldValue = json.getString("documentNumber");
String serviceProvider = "ASOCIACION SACO OLIVEROS";
String partnerId = "0007";
String partnerId = "0022";
String partnerEmail = "sistemas@sacooliveros.edu.pe";
String partnerPhoneNumber = "993521358";
String partnerTypeId = "AGENT";
......@@ -161,19 +162,19 @@ public class bbvaService {
String token = utils.getToken();
String digest = utils.hashDigest(jsonRequest.toString());
String txt = utils.txtToSign(jsonRequest ,digest);
String txt = utils.txtToSign(jsonRequest, digest);
String signature = utils.createSignature(txt);
JSONObject jsonResponse = utils.peticionHTTP(token, digest, signature, jsonRequest);
JSONObject qrCode = jsonResponse.optJSONObject("qrCode", new JSONObject());
if(!qrCode.isEmpty()){
if (!qrCode.isEmpty()) {
returnMessage.put("hashCode", qrCode.get("hashCode"));
returnMessage.put("id", qrCode.get("id"));
returnMessage.put("message", "Well-generated QRCode");
returnMessage.put("status", true);
}else{
} else {
returnMessage.put("message", jsonResponse.get("message"));
returnMessage.put("status", false);
}
......@@ -181,11 +182,13 @@ public class bbvaService {
return returnMessage;
}
public JSONObject getStatus(String id){
public JSONObject getStatus(String id) {
JSONObject returnMessage = new JSONObject();
String endpoint = "/pe/request-to-pay/v1/qrs/"+id+"/status";
try {
String endpoint = "/pe/request-to-pay/v1/qrs/" + id + "/status";
String method = "get";
JSONObject jsonRequest = new JSONObject()
......@@ -194,33 +197,35 @@ public class bbvaService {
String token = utils.getToken();
String digest = utils.hashDigest(jsonRequest.toString());
String txt = utils.txtToSign(jsonRequest ,digest);
String txt = utils.txtToSign(jsonRequest, digest);
String signature = utils.createSignature(txt);
JSONObject jsonResponse = utils.peticionHTTP(token, digest, signature, jsonRequest);
JSONObject data = jsonResponse.optJSONObject("data", new JSONObject());
if(!data.isEmpty()){
if (!data.isEmpty()) {
JSONObject billFirstElement = data.optJSONArray("bills", new JSONArray()).getJSONObject(0);
String billId = billFirstElement.getString("id");
JSONObject statusBill = billFirstElement.optJSONObject("status", new JSONObject());
String nameStatus = statusBill.getString("name");
String idStatus = statusBill.getString("id");
returnMessage.put("id", id);
returnMessage.put("billId", billId);
returnMessage.put("statusName", nameStatus);
returnMessage.put("statusId", idStatus);
returnMessage.put("message", "PAGADO"); //nameStatus
returnMessage.put("status", true); //nameStatus.equals("PAGADO")
}else{
returnMessage.put("message", "id not found");
} else {
returnMessage.put("message", "Id not found");
returnMessage.put("status", false);
}
return returnMessage;
} catch (Exception e) {
returnMessage.put("message", e.getMessage());
returnMessage.put("status", false);
return returnMessage;
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment