Vous êtes sur la page 1sur 8

Objetivo: Apresentar as funes bsicas para integrao via WebService do Gateway SMS

Reviso: R002 Data: 25/08/2013

FUNCIONAMENTO:
O mtodo escolhido pela Gateway SMS para integrao do WebService atravs do envio de um
POST e possuindo como retorno um JSON.

REQUISITO:
Dever ser realizado um cadastro prvio no site atravs do link
https://www.gwsms.com.br/cadastro
Aps realizao do cadastro dever ser solicitado um token atravs do e-mail
contato@gwsms.com.br

TERMINOLOGIA E PADRES UTILIZADOS:


Segurana API Protocolo HTTPS (HyperText Transfer Protocol Secure ): uma implementao do
protocolo HTTP sobre uma camada adicional de segurana que utiliza o protocolo SSL/TLS. Essa
camada adicional permite que os dados sejam transmitidos por meio de uma conexo
criptografada e que se verifique a autenticidade do servidor e do cliente por meio de certificados
digitais. Todas as URLs da API utilizam este protocolo.
Padro de codificao UTF-8: trata-se de um padro de codificao de textos Unicode que define
o conjunto de caracteres no qual ser manipulada a mensagem. um padro que vem sendo
amplamente utilizado como codificao padro para mensagens de e-mail, websites e outros
locais onde h armazenamento e troca de mensagens entre diferentes plataformas.

Abaixo esto relacionados os mtodos para interao via WebService usando a linguagem de
programao PYTHON.

1. Mtodo para enviar para a fila de envio:


import urllib
params = {}
params['token'] = 'xxxx'
params['celular'] = '04799999999'
params['msg'] = 'mensagem de teste'
params['data'] = '2012-12-15 20:00:00'
params = urllib.urlencode(params)
f = urllib.urlopen("https://gwsms.com.br/api/envio",params)
print f.read()
* o campo params['data'] pode ser enviado como string vazia ou no enviado
para o SMS ser agendado para data atual.
** Ser retornado o campo id_sms o qual corresponde ao nmero nico do SMS
registrado na fila.
** Dica Python: Transforme o retorno em JSON em Dicionrio atravs do cdigo:
import json
f = urllib.urlopen("https://gwsms.com.br/api/envio",params)
dados = json.loads(f.read())

2. Mtodo para apagar da fila de envio


import urllib
params = {}
params['token'] = 'xxxx'
params['id_sms'] = '1575'

params = urllib.urlencode(params)
f = urllib.urlopen("https://gwsms.com.br/api/apaga",params)
print f.read()

* o campo params['id_sms'] corresponde ao ID nico gerado no mtodo de envio a


fila.

3. Mtodo de consulta do SMS na fila de envio:


import urllib
params = {}
params['token'] = 'xxxx'
params['id_sms'] = '1575'

params = urllib.urlencode(params)
f = urllib.urlopen("https://gwsms.com.br/api/consulta",params)
print f.read()
** Ser retornado um JSON contendo todos os parmetros do ID_SMS agendado na
fila de envio.

4. Mtodo para alterao dos campos de um SMS agendado na fila.


import urllib
params = {}
params['token'] = 'xxxx'
params['id_sms'] = '1575'
params['celular'] = '04799999999'
params['msg'] = 'mensagem alterada'
params['data'] = '2012-12-15 20:00:00'
params = urllib.urlencode(params)
f = urllib.urlopen("https://gwsms.com.br/api/altera",params)
print f.read()

5. Mtodo para retornar todos os SMS que esto na fila de


processamento.
import json
import urllib
params = {}
params['token'] = 'xxxx'
params = urllib.urlencode(params)
f = urllib.urlopen("https://gwsms.com.br/api/smsfila",params)
dados = json.loads(f.read())
print dados

Exemplo do retorno:
'2299': {'msg': 'mensagem, 'usuario': '9', 'data': 2012-12-15 20:00:00', 'celular': '04791216538',
'valor': '0.15'}

* Sero retornados todos os SMS que esto na fila para processamento. Neste momento pode ser
editado atravs da funo para edio por ID. O campo 2299 o ID do SMS.

6. Mtodo para retornar todos os SMS que foram enviados.


import json
import urllib
params = {}
params['token'] = 'xxxx'
params = urllib.urlencode(params)
f = urllib.urlopen("https://gwsms.com.br/api/smsenviados",params)
dados = json.loads(f.read())
print dados

Exemplo do retorno:
'2000': {'usuario': '9', 'data_envio': '2012-09-17 19:24:22', 'celular': '4791216538', 'valor': '0.15',
'msg': 'acesse o site: www.kmesolucoes.com.br/sms ', 'data': u'2012-09-17 19:22:00'}

* Esta funo retorna todos os SMS enviados para os clientes.


** o campo data informa quando o SMS foi agendado no sistema e o campo data_envio retorna
quando a mensagem foi entregue a operadora de telefonia mvel.

7. Mtodo para retornar a consulta de saldo.


import json
import urllib
params = {}
params['token'] = 'xxxx'
params = urllib.urlencode(params)
f = urllib.urlopen("https://gwsms.com.br/api/saldo",params)
dados = json.loads(f.read())
print dados

Exemplo do retorno:
{u'saldo': 42.75, u'saldo_sms': 285.0}
* saldo: representa o valor em reais que pode ser consumido.
* saldo_sms: representa a quantidade de SMS que pode ser enviado.

8. Mtodo para recebimento dos SMSs solicitados por cliente.


Este procedimento deve ser realizado para obter os SMS recebidos.
import json
import urllib
params = {}
params['token'] = 'xxxx'
params = urllib.urlencode(params)
f = urllib.urlopen("https://gwsms.com.br/api/sms_recebidos",params)
dados = json.loads(f.read())
print dados

Observao: Se enviado o parmetro params['ult_id_sms_recebido'] o WebService


apenas retornar os SMS recebidos acima do id enviado por ultimo, neste
contexto, a aplicao solicitante deve armazenar o ltimo id recebido na
funo.

Topologia GWSMS Envio de SMS:

Envia POST HTTP

Aplicao Prpria

Recebe um JSON

GWSMS
Gateway SMS

Operadora de
Telecomunicaes:
TIM
VIVO
CLARO
OI

Cliente 1
Cliente 2
.
.
.
Cliente N

Topologia GWSMS Recebimento de SMS:

Envia POST HTTP


Cliente 1
Cliente 2
.
.
.
Cliente N

Operadora de
Telecomunicaes:
TIM
VIVO
CLARO
OI

GWSMS
Gateway SMS

Com funo
Recebimento de
X em X Tempo()

Recebe um JSON

Aplicao Prpria

Retornos possveis:
Status = 400 informa que a requisio no foi realizada com sucesso.
Status = 200 informa que a requisio foi realizada corretamente.
Informa que o token est incorreto
{"status": 400, "servidor": "gwsms.com.br", "token": "Token incorreto."}

Painel Administrativo:
Todas as interaes com a fila de envio de SMS, recebimento de SMS ou todos os SMS
enviados podero ser acompanhados atravs do painel administrativo.

Dvidas?
Email: contato@gwsms.com.br