Quiero colocar este código en una aplicación para android para que funcione como punto de venta virtual
las siguiere información debería estar en variables para introducirlas desde los ajustes
("http://localhost:8080/cyclos");
("Amount: ");
los campos
("Login name: ");
("PIN: ");
correspondiente a la persona que esta realizando el pago deseo poder cargarlos escaneado un código Qr para el nombre y luego se habilite de nuevo el código qr para escanear el pin
eso quiere decir que en una tarjeta tendré dos código qr y no sera necesario introducir el monto ya que sera un monto fijo configurado en los ajustes solo escanear ambos códigos para procesar el pago
cuando se escanea y el código es capturado se produce un sonido que avisa que el código fue capturado correctamente deseo que si capturo barias beses el mismo código se sume la cantidad de dinero solo si se escanea el mismo código si se escanea otro código se borre el moto del primero y cargue el otro código luego de escanear le código las beses que deseo sumarle escaneado el código reverso pin de 4 dígitos se procese el pago y emita un pequeño sonido muy bajo que avise con sonidos escalonados por segundos que esta procesando el pago y al regresar la respuesta del servidor si el pago es procesado emita un sonido de caja de dinero, si la respuesta del pago es no procesada emita un sonido de error esto a la par de las informaciones corresponderte en pantalla
la apariencia estética sera en la parte superior una pequeña pantalla donde se visualice la información y donde se visualicen los datos introducidos por el qr en la parte inferior un teclado numérico similar a un pos para introducir la información manualmente si fuese necesario
la información se iría cargado por parte es decir primero solo en la pantalla se mostraría el campo para introducir el usuario que seria un numero al pisar enter o si es por el qr pasaría a la siguiente ventana donde mostraría el campo para introducir el pin al introducir el pin o escanear el qr del pin se enviaría el monto ya pre configurado con los datos al servidor y estaría un mensaje de procesando en pantalla. Al regresar la respuesta se mostraría en pantalla la respuesta dada por el servidor
ajunto aquí el código ejemplo para el desarrollo de dicha aplicación y la pagina de la wiki con mas información
Then, this code should run when using this member to perform the payment.
// The factory should be cached and shared between calls
CyclosWebServicesClientFactory factory = new CyclosWebServicesClientFactory();
factory.setServerRootUrl("http://localhost:8080/cyclos");
PaymentWebService paymentWebService = factory.getPaymentWebService();
BufferedReader in = new BufferedReader(new InputStreamReader(
System.in));
PaymentParameters params = new PaymentParameters();
// Prompt the parameters
System.out.print("Amount: ");
params.setAmount(new BigDecimal(in.readLine()));
System.out.print("Login name: "); //This user should have the channel set as enabled
params.setFromMember(in.readLine());
System.out.print("PIN: ");
params.setCredentials(in.readLine());
// Perform the payment
PaymentResult result = paymentWebService.doPayment(params);
switch (result.getStatus()) {
case PROCESSED:
String transactionNumber = result.getTransfer().getTransactionNumber();
System.out.println("The payment was successful. The transaction number is " + transactionNumber);
break;
case PENDING_AUTHORIZATION:
System.out.println("The payment is awaiting authorization");
break;
case INVALID_CHANNEL:
System.out.println("The given user cannot access this channel");
break;
case INVALID_CREDENTIALS:
System.out.println("You have entered an invalid PIN");
break;
case BLOCKED_CREDENTIALS:
System.out.println("Your PIN is blocked by exceeding trials");
break;
case INVALID_PARAMETERS:
System.out.println("Please, check the given parameters");
break;
case NOT_ENOUGH_CREDITS:
System.out.println("You don't have enough funds for this payment");
break;
case MAX_DAILY_AMOUNT_EXCEEDED:
System.out.println("You have already exceeded the maximum amount today");
break;
default:
System.out.println("There was an error on the payment: " + result.getStatus());
fuente: código abierto
https://wiki3.cyclos.org/index.php/Web_services/Perform_Payment
https://wiki3.cyclos.org/index.php?title=Web_services
Plazo de Entrega: No definido