×
Namespaces

Variants
Actions

Payment API (Português)

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Compatibilidade
Plataforma(s):
Series 40

Artigo
Tradução:
Por valderind4
Última alteração feita por lpvalente em 05 Apr 2014

Payment API( API de pagamento) (JSR 229) permite aplicações Java ME requisitar ao dispositivo para trocar algum conteúdo, como um novo nível de um jogo, uma informação, ou alguma outra coisa. Você pode pagar pela aplicação, por uso( por dias) ou por funiconalidades. Este artigo mostra um exemplo de uso da Payment API com HTTP.

Esta API não é fixada para a tecnologia por trás do pagamento. O pagamento pode ser feito via SMS, cartão de crédito ou pela conta do telefone. A operadora do usuário pode configurar que opções de pagamento o usuário terá disponível para pagar.

MIDlet protótipo

import java.io.*;
import javax.microedition.midlet.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
 
public class SslTest extends MIDlet implements CommandListener {
private final String merchant="4181607";
private final String amount="19095";
private final String currency="208";
private final String orderid ="991002b";
private final String accepturl ="https://payment.architrade.com/cgissl/relay.cgi/http://www.java4mobile/dibs/godkendt.jsp";
private final String declineurl ="https://payment.architrade.com/cgissl/relay.cgi/http://www.java4mobile/dibs/afvist.jsp";
private final String test="foo";
 
private String cardno;
private String expmon;
private String expyear;
private String cvc;
private String url = "https://payment.architrade.com/cgi-ssl/auth.cgi";
private String post;
private String urlTotal;
 
private Command exitCommand = new Command("Exit", Command.EXIT, 2);
private Command getCommand = new Command("Pay", Command.SCREEN, 1);
private Form form;
private TextField txtCardno = new TextField("Card no:", null, 16, TextField.NUMERIC);
private TextField txtExpmon = new TextField("Expmon", null, 2, TextField.NUMERIC);
private TextField txtExpyear = new TextField("Expyear", null, 2, TextField.NUMERIC);
private TextField txtCvc = new TextField("Cvc", null, 3, TextField.NUMERIC);
private Display display;
 
public SslTest() { }
 
public void startApp() {
if (display == null)
display = Display.getDisplay(this);
form = new Form("Payment");
form.append(txtCardno);
form.append(txtExpmon);
form.append(txtExpyear);
form.append(txtCvc);
form.addCommand(exitCommand);
form.addCommand(getCommand);
form.setCommandListener(this);
display.setCurrent(form);
}
 
public void commandAction(Command c, Displayable d) {
if (c == exitCommand) {
notifyDestroyed();
}
else if (c == getCommand) {
cardno=txtCardno.getString();
expmon=txtExpmon.getString();
expyear=txtExpyear.getString();
cvc=txtCvc.getString();
post = "?merchant="+merchant+"&amount="+amount+"&currency="+currency+"&orderid="+orderid+ "&accepturl="+accepturl+"&declineurl="+declineurl+"&cardno="+cardno+"&expmon="+expmon+ "&expyear="+expyear+"&cvc="+cvc+"&test="+test;
StringBuffer b = new StringBuffer();
HttpsConnection con = null;
InputStream is = null;
OutputStream os = null;
urlTotal = url+post;
 
try {
int len = 0;
int ch = 0;
con = (HttpsConnection)Connector.open(urlTotal);
con.setRequestMethod(HttpsConnection.POST);
/*
byte[] data = post.getBytes();
con.setRequestProperty("Content-Length",
Integer.toString(data.length));
os = con.openOutputStream();
os.write( data );
os.close();
*/

System.out.println(Integer.toString(con.getResponseCode()));
is = con.openInputStream();
len = (int) con.getLength();
if (len != -1) {
for(int i=0; i<len; i++) {
if((ch = is.read()) != -1) {
b.append((char) ch);
}
}
}
 
else {
while((ch = is.read()) != -1) {
len = is.available();
b.append((char) ch);
}
}
 
System.out.println("Response: " +b.toString());
Alert a = new Alert("Trans results:", b.toString(), null, null);
a.setTimeout(Alert.FOREVER);
display.setCurrent(a);
}
catch (Exception e) {
e.printStackTrace();
String s = e.toString();
If(s != null) {
Alert aa = new Alert("Error in connection:", s, null, null);
aa.setTimeout(Alert.FOREVER);
display.setCurrent(aa);
}
}
 
finally {
if (is != null) {
try {
is.close();
}
catch (Exception ce) { }
}
if (c != null) {
try {
con.close();
}
catch (Exception ce) { }
}
}
}
}
 
public void pauseApp() {}
 
public void destroyApp(boolean unconditional) { }
 
}

Mais informações: Análise de J2ME para desenvolvimento de sistemas de pagamento mobile-> www.microjava.com/articles/techtalk/mpayment

Site oficial-> jsr 229

This page was last modified on 5 April 2014, at 21:12.
151 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×