Clipper On Line • Ver Tópico - Tutorial - Revenda de SMS para Desenvolvedores
Página 1 de 2

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 28 Jan 2014 18:39
por ANDRIL
Pessoal, respondendo a algumas dúvida de alguns colegas do fórum, criei este singelo tutorial mostrando que o desenvolvedor de aplicativo (clipper/xharbour) pode implantar o envio de SMS e ser revendedor para seus clientes do crédito necessário para envio. Estou colocando o serviço de SMS que utilizo (pago) mais creio que o procedimento deva ser parecido para as demais empresas pagas ou não.

A novidade é que ficou mais fácil para mim desenvolvedor centralizar o controle de créditos dos meus clientes, por que cada um possui uma chave (token) e é criada dentro da minha própria conta. Antes tinha que solicitar ao cliente fazer o cadastro e o cliente sempre ocupado não tinha tempo.

Lembrando que já tenho conta de acesso no site www.easysms.net.br.

Ao acessar o painel clique no icone conforme a imagem
Imagem

Crie sua subconta (conta filha)
Imagem

Após criada a conta, transfira a quantidade de crédito que seu cliente comprou de voce
Imagem

Notem que ao criar a subconta é dado um token único, ele é necessário para usar os serviços da API de comunicação com o site.

Este token eu informo ao cliente que acessa uma opção em meu sistema que permite registrá-lo e apartir daí já utilizar os serviços de envio.

Importante: essa subconta embora esteja com o nome do cliente´é só para meu controle, ele não recebe login e senha de acesso como uma conta convencional, sendo assim, não pode usar os serviços do site e consequêntemente adquirir créditos direto da empresa.

Resolvi criar um tópico novo para não atrapalhar o andamento do tópico
http://www.pctoledo.com.br/forum/viewtopic.php?f=39&t=4328&start=735

Ate+

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 09 Fev 2014 22:25
por sygecom
O Custo do SMS nesse Easy é muito caro para quem usa muito SMS, no http://www.iagente.com.br é mais em conta.

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 10 Fev 2014 11:20
por ANDRIL
Olá sygecon, é verdade tem outros com valores menores mesmo, porem, meu uso aqui não chega ser tanto que compense visto que estes valores menores são para grandes quantidades o que ocasiona num valor de pacote muito alto.

Estive consultando o departamento comercial da easySMS sobre outros planos e me disseram para aguardar +- uma semana que estão refazendo os valores dos pacotes e que sendo eles, vão "abalar o mercado".

Quem viver verá, rs.

Ate+

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 17 Fev 2014 15:17
por Eros
SMS é com modem daruma mini-210. Coloca um chip lá, e manda ver.

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 29 Ago 2014 14:35
por filizola
Pode informar por favor onde compro mini modem daruma 210 ?

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 29 Ago 2014 16:25
por HASA
:))
Compre direto na Daruma http://www.desenvolvedoresdaruma.com.br/home/index.php no site click no menu Modems e Telecom, não uso mas o link é esse.

HASA

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 29 Ago 2014 16:55
por Eros
Vc pode comprar direito na daruma, ou no mercado livre.

Fale com claudenir@daruma.com.br ou claudenirandrade@daruma.com.br
No mercado livre tem tambem. E recomendo, nao compre modem usb. Da pau demais.. tenha preferencia por modem para ligar na porta serial (com1, com2). Te garanto que modem na porta serial, nao vai te dar dor de cabeça.

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 29 Ago 2014 19:26
por ANDRIL
Eros escreveu:nao compre modem usb. Da pau demais..

Modem USB geralmente instalando o drive cria uma porta serial virtual, utilizo modens USB usando comunicação serial via xharbour normalmente.

Ate+

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 22 Mai 2020 21:41
por Abel
muito boa noite,
em 2014 postei algumas duvidas aqui sobre envio sms e alguns de voces falaram sobre algumas empresas etc...
atualmente alguns links nem estao mais no ar, por exemplo easysms, alguem pode dizer se tem o sistema integrado com alguma empresa de sms e que esta satisfeito agora em 2020 ? agora devido a pandemia, enviar sms pelo sistema para contatar clientes, pode ser bem interessante.

Desde ja agradeço,
ABEL

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 23 Mai 2020 09:51
por ANDRIL
Usamos por muito tempo a easysms, porem quando um cliente necessitou de integração também com um programa de pontos, passamos a usar o MixPontos que além dos pontos também tem a parte de envio de SMS e permite integração via api.
Temos usado tanto a parte de fidelidade de clientes integrado ao nosso sistema e também o SMS em shortcode com excelente qualidade. Usamos para diversas tarefas os SMS, aviso de compra, aviso de entrega, aviso de aniversário, etc.

Para desenvolvedores tem que se cadastrar no site para receber os tokens de integração. Depois cada cliente cria sua conta de EMPRESA/LOJISTA e tem acesso a seus tokens além de poder usar a plataforma de pontuação de clientes. O desenvolvedor cria no aplicativo campos para guardarem os tokens que farão parte da chamada http. Como já tinhamos as chamadas para a easysms foi muito simples passar para o MixPontos.
http://www.mixpontos.com.br/

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 23 Mai 2020 10:51
por Abel
Obrigado pela dica, Andril, vou analisar eles tambem
ontem fiz o cadastro de teste na comtele para iniciar alguns testes

consegui enviar o sms, mas nao consegui pegar o retorno true ou codigo de erro,
alguem tem alguma experiencia parecida ?

Function ENVIA_SMS_COMTELE()
  Local oOle, aRet, aHash:=hash(), cJson

    ahash["Sender"]      := "cod_id01"
    ahash["Receivers"]   := "11999999999"
    ahash["Content"]     := "esta e uma mensagem sms teste"

    cJson := hb_jsonEncode(ahash, .t.)
    ////// cJson :="["+cJson+"]"
    ALERT2('AZUL',cJson)
    Try
        oOle := CreateObject("MSXML2.XMLHTTP")
    Catch
        oOle := CreateObject("Microsoft.XMLHTTP")
    End

    oOle:Open( "POST", "https://sms.comtele.com.br/api/v2/send", .t. )
    oOle:SetRequestHeader( "content-type", "application/json")
    oOle:SetRequestHeader( "auth-key", "xxxxxxxx-xxxx-4037-b011-8d58bdfe7685")  // substituir seu token recibido no cadastrar
    oOle:Send(cJson)
    Do While oOle:readyState <> 4
       // oOle:WaitForResponse( 500 ) // SysRefresh()
       millisec(500)
    ENDDO
    //
    ALERT2('VERDE',oOle:ResponseBody) ////////////////////////// retorna nulo
   
    hb_jsonDecode(oOle:ResponseBody, @aRet)
   
    ALERT2('AZUL',aRet) ////////////////////////// retorna nil

Return nil


segue o manual

Enviar SMS
Com este recurso, é possivel enviar SMS de forma instantânea.
URL do Endpoint: https://sms.comtele.com.br/api/v2/send
Autenticação via Header: auth-key: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Método: POST

curl
curl --request POST \
--url https://sms.comtele.com.br/api/v2/send \
--header 'auth-key: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' \
--header 'content-type: application/json' \
--data '{"Sender":"sender_id","Receivers":"phone_number","Content":"message"}'

Exemplo de Retorno de Sucesso
copy
{
"Success": true,
"Object": null,
"Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}
{
"Success": true,
"Object": null,
"Message": "A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios."
}

Campos do Retorno
Campos Descrição

Success Pode ser retornado true para sucesso ou false para erro, este campo é o resultado da operação.
Object Neste recurso será nulo, pois não existe objeto a ser retornado.
Content Conteúdo da mensagem que foi recebida pelo número retornado.
Message Neste campo é retornado mais detalhes sobre o resultado da operação do recurso que foi utilizado.

Retornos Previsíveis
HTTP Status Descrição
200 A requisicao de envio foi encaminhada para processamento com sucesso. Voce podera acompanhar o status pelos relatorios.
400 Object reference not set to an instance of an object. Possível Causa: Nenhum objeto foi informado no Body da requisição.
400 É necessário informar ao menos um destinatário que irá receber o SMS.
400 O parâmetro ‘Content’ deve ser informado com conteúdo.
400 Não foi possível continuar, pois a quantidade de créditos é insuficiente. Para efetuar o envio é necessário ao menos 1 créditos.
401 A chave de acesso informada é inválida e não pode efetuar uma requisição à API. Possível Causa: auth-key está incorreta ou o campo foi informado em branco.
401 O usuário informado está desativado.
401 O usuário informado está incorreto ou não existe Possível Causa: o campo auth-key não está sendo informado na requisição.
500 Algum problema com o servidor em que está o recurso acessado, neste caso, tente acessar novamente.
503 houve um time out na requisição ao efetuar a conexão com o endpoint.

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 24 Mai 2020 11:08
por rossine
Olá Abel,

Eu estou integrando meu aplicativo com o Disparo PRO.

Tente fazer estas mudanças no seu no fonte para ver se consegue fazer o que você precisa:


Troque:

Try
    oOle := CreateObject("MSXML2.XMLHTTP")
Catch
    oOle := CreateObject("Microsoft.XMLHTTP")
End

Por:

Try
    oOle := CreateObject("MSXML2.ServerXMLHTTP")
Catch
    oOle := CreateObject("Microsoft.XMLHTTP")
End

e isto:

oOle:Open( "POST", "https://sms.comtele.com.br/api/v2/send", .t. )

por:

oOle:Open( "POST", "https://sms.comtele.com.br/api/v2/send", .f. )


Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 24 Mai 2020 19:54
por Abel
Ola, rossine

nao adiantou, mas descobri onde estava o erro.

apos o send(), ao invés de pegar o retorno de oOle:ResponseText,
estava pegando oOle:ResponseBody

tentei descobrir quais são as variáveis que o send() alimenta alem de
oOle:status, e oOle:ResponseText mas nao descobri, ficou assim:


Try
        oOle := CreateObject("MSXML2.XMLHTTP")
    Catch
        oOle := CreateObject("Microsoft.XMLHTTP")
    End
    //
    oOle:Open( "POST", "https://sms.comtele.com.br/api/v2/send", .f. )
    oOle:SetRequestHeader( "content-type", "application/json")
    oOle:SetRequestHeader( "auth-key", "xxxxxxxxxxd4037-b011-8d58bdfe7685")  // substituir o 99999999999 por seu token recibido no cadastrar
    oOle:Send(cJson)
    Do While oOle:readyState <> 4
       millisec(500)
    ENDDO
    aRet=STRTRAN(oOle:ResponseText,CHR(227),"a") // TIRA o a com til que aparecia um caractere esquisito
    //
    IF oOle:status=200     //  200=processado com sucesso para qualquer transacao da comtele
       IF 'sucesso' $ aRet
          ALERT2('VERDE','SMS enviado para processamento.')  // padronizei as msg de retorno deles nao me interessa quando retorna sucesso
       ELSE
          ALERT2('AZUL',aRet)   
       ENDIF
    ELSE
       ALERT2('VERMELHO',aRet)
    ENDIF

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 25 Mai 2020 11:50
por HASA
Bom dia, Rossine, você tem algum exemplo desse Disparo Pro ?

HASA

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 25 Mai 2020 19:59
por rossine
Olá Hasa,

O Everton tem um exemplo bacana para Harbour e xHarbour.

Vou ver se tem como ele entrar em contato contigo. Eu usei o exemplo dele para montar minha classe, mas qualquer dúvida me avisa que te ajudo também.

Abraço,

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 25 Mai 2020 22:13
por ANDRIL
Abel escreveu:consegui enviar o sms, mas nao consegui pegar o retorno true ou codigo de erro,
alguem tem alguma experiencia parecida ?

A integração que fazemos utiliza outros comandos veja o exemplo.
LOCAL oHttp, urlSms, cUrl, string
urlSms="http://www.mixpontos.com.br/php/api-integra.php?tokensh="+tokenSH+"&token1="+token1+"&token2="+token2

cUrl = urlSms + "&METHOD=SENDSMS"+"&cel=11999998888;"+"&msg=Teste de envio de SMS"
cUrl = strtran(cUrl," ","%20")

oHttp:=TIpClientHttp():New(cUrl)
if oHttp:open()
   string:=oHttp:readAll()   
   oHttp:close()      
   if left(string,3)="OK:"
      alert("SMS enviado!")   
   else
      alert("Ocorreu um erro!;;"+string)    
   endif
else
alert("ERRO;;"+oHttp:lastErrorMessage())
endif


Não sei se ajuda.

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 25 Mai 2020 22:33
por evertonlb
Olá pessoal..
Valeu Rossine.. Obrigado pela referência.
Hasa, eu trabalho numa Telacom, e temos uma plataforma de envio de SMS, a DisparoPro, que o Rossine comentou. Fiz uma integração usando o xHb e o Fw, comentei os PRG´s e tem o executável também..

https://www.4shared.com/get/KcmmygiJiq/BFT_V112A.html

pode fazer o download e veja os fontes.
A DisparoPro é muito bacana e super fácil de integrar, o Rossine pode confirmar isso. A DisparoPro conta com um CRM e todos os envios e respostas dos SMS ficam numa Timeline, mas claro, tem como dar um GET e pegar as infos..

Acessa, abre uma conta e dá uma olhada
www.disparopro.com.br

Qualquer dúvida estou a disposição para esclarecer. Whatsapp 11 4299 0721

Tutorial - Revenda de SMS para Desenvolvedores

MensagemEnviado: 26 Mai 2020 09:30
por HASA
Bom dia, Everton, muito obrigado. E os demais colegas tbm foi de grande ajuda.

HASA