`

华为网关短信发送和接收

    博客分类:
  • CMPP
阅读更多

package com.skywin.simpass.sysinterface.sms.util;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import com.huawei.insa2.comm.cmpp.message.CMPPDeliverMessage;
import com.huawei.insa2.comm.cmpp.message.CMPPMessage;
import com.huawei.insa2.comm.cmpp.message.CMPPSubmitMessage;
import com.huawei.insa2.comm.cmpp.message.CMPPSubmitRepMessage;
import com.huawei.insa2.util.Args;
import com.huawei.smproxy.SMProxy;
import com.skywin.simpass.sysinterface.sms.entity.SMSEntity;

public class SMSClient extends SMProxy {

    private static SMSClient ins;

    private SMSClient(Args args) {
        super(args);
    }

    public static SMSClient getInstance() {
        if (ins == null) {
            Map<String, String> m = new HashMap<String, String>();
            // 系统参数配置
            m.put("host", "host");
            m.put("port", "port");
            m.put("source-addr", "source-addr");
            m.put("shared-secret", "shared-secret");
            m.put("heartbeat-interval", "30");
            m.put("reconnect-interval", "30");
            m.put("heartbeat-noresponseout", "5");
            m.put("transaction-timeout", "10");
            m.put("version", "0");
            m.put("debug", "true");
            ins = new SMSClient(new Args(m));
        }
        return ins;
    }

    public CMPPMessage onDeliver(CMPPDeliverMessage msg) {
        String message = null;
        try {
            String receivedMsg = new String(msg.getMsgContent(), "UTF-8");
            // System.out.println("接收到的消息:"+receivedMsg);
            String receivedTelephone = msg.getSrcterminalId();
            // System.out.println("接收的手机号码:"+receivedTelephone);
            if ((receivedMsg.subSequence(0, 5)).equals("CSize")) {
                System.out.println(receivedMsg);
            } else {
                message = "充值请求信息格式不对";
                CMPPSubmitMessage submitMsg = new CMPPSubmitMessage(1, 1, 0, 1,
                        "0010", 0, "", 0, 0, 15, "950338", "02", Integer
                                .toString(0),
                        new Date(System.currentTimeMillis() + (long) 50000), // 存活期
                        null, "10658672", new String[] { receivedTelephone },
                        message.getBytes(), "");
                // 发送错误信息给用户
                SMSClient.getInstance().send(submitMsg);
            }
        } catch (Exception e) {
        }
        return super.onDeliver(msg);
    }

    public void send(CMPPSubmitMessage msg) throws Exception {
        CMPPSubmitRepMessage rep = (CMPPSubmitRepMessage) super.send(msg);
        // System.out.println(rep.toString());
    }

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        SMSClient client = SMSClient.getInstance();
        System.in.read();
    }

}

 

 

分享到:
评论

相关推荐

    华为短信网关超完整版

    华为短信网关是一款高效、稳定且功能强大的通信系统,它主要负责处理和管理短信服务,为企业和运营商提供可靠的短信发送和接收平台。本资源包含华为短信网关的超完整版本,支持与移动、联通、电信等各大运营商的网关...

    华为_短信API(综合网关)

    华为短信API(综合网关)是华为云服务中的一项重要功能,它为企业和开发者提供了便捷、高效的短信发送服务。这个API允许用户通过编程方式与华为的短信平台进行交互,实现各种场景下的短信发送,如验证码、通知、营销...

    cmpp3.0华为短信网关jar包和源码

    消息查询用于获取短信发送状态;消息报告则反馈短信的接收情况,如成功、失败或被拦截;计费信息则为商业运营提供必要的数据支持。 在使用"smproxy.jar"时,开发者需要熟悉CMPP3.0协议的报文格式,包括命令标识、...

    华为 短信API 综合网关

    华为短信API综合网关是华为推出的一款用于企业级短信服务的解决方案,旨在提供高效、稳定且安全的短信发送能力。该网关支持多种通信协议,包括CMPP2.0、CMPP3.0、CNGP、SGIP、SMGP以及SMPP,以满足不同应用场景下的...

    华为短信api的java源码

    华为短信API的Java源码是用于与华为短信服务进行交互的一种开发工具,它允许开发者通过编程方式发送、接收和管理短信。在这个压缩包中,可能包含的文件是`smproxy`,这通常是一个代理服务器或者中间件,用于处理与...

    中国移动 短信网关 华为API使用说明

    例如,CMPP3.ISMG可能包含一个示例程序,展示了如何使用华为API进行连接、发送、接收和关闭操作的完整流程。通过阅读和理解这些代码,开发者可以快速掌握API的用法,并根据自身需求进行定制和扩展。 需要注意的是,...

    中国移动短信网关cmpp 3.0 华为java api

    8. **扩展性**:除了基本的短信发送和接收,API可能还支持更高级的功能,如短信模板、定时发送、状态报告等,这为开发者提供了更多可能。 通过理解以上知识点,开发者可以利用华为的中国移动短信网关CMPP 3.0 Java ...

    短信开发文档及软件包(华为网关方式)

    CMPP2.0是该协议的一个版本,主要用在企业服务器与运营商短信网关之间的通信,以实现大规模的短信发送和接收。 `smproxy (20040730).jar` 文件是一个Java库,它包含了华为的短消息代理实现,即SMProxy。这个代理...

    华为cmpp短信API

    华为CMPP短信API是华为公司提供的一个用于发送和接收短信的服务接口,主要应用于企业或开发者构建自己的短信服务系统。这个API支持多种操作系统平台,包括Windows、Java和Unix环境,为不同场景的应用提供了便利。在...

    华为cmpp协议短信网关Delphi源码

    6. 状态报告:CMPP协议允许网关返回短信发送的状态报告,如成功发送、失败原因等。源码需要处理这些状态报告,提供反馈给用户。 7. 并发处理:由于短信网关可能同时处理大量请求,源码可能会采用多线程或者异步I/O...

    华为短信网关话单说明

    话单生成模块负责在短信发送或接收时实时记录操作信息;话单存储模块则保存这些记录,通常采用高可用的分布式存储方案确保数据安全;话单处理模块对生成的话单进行预处理、归档和压缩;最后,话单分析模块用于对大量...

    华为2.0短信发送实例(socket模式)

    华为2.0短信发送实例是一个基于Socket模式实现的通信系统,它允许应用程序通过网络连接与短信网关进行交互,从而发送短信。在这个过程中,我们将详细探讨以下几个关键知识点: 1. **Socket编程**: Socket是网络...

    短信网关接入程序,通过socket接入消息,然后直接转发到ISMG;同时支持华为短信网关接入.zip

    短信网关接入程序是IT行业中一个关键的组件,主要用于企业或服务提供商与移动运营商的通信系统进行交互,发送和接收短信。在这个特定的项目中,程序是用C#语言编写的,这是一种常用的面向对象编程语言,尤其适用于...

    api-hw华为CMPP3.0短信网关API.rar

    这个API主要用于企业和开发者通过编程方式与移动运营商的短信平台进行交互,实现大规模的短信发送、接收等功能。本压缩包包含的资源有“CMPP协议v3.0.doc”文档,详细阐述了CMPP3.0协议规范,以及“短信API”文件,...

    cmpp短信网关协议实现

    - CMPP_QUERY:SP查询短信发送状态。 - CMPP_CANCEL:SP取消已发送但未被接收的短信。 2. CMPP3.0协议: CMPP3.0是在CMPP2.0基础上的升级,增加了更多的功能和安全特性,例如支持WAP Push、彩信以及更复杂的业务...

    华为eSight网络监控平台短信设置说明.docx

    10. **接收号码关键字**:设置为“mobile”,表示短信将发送到的手机号码。 11. **多号码分隔符**:如果需要向多个号码发送短信,可以用逗号(,)作为分隔符。 最后,如果你希望自定义短信的内容,可以在“告警-&gt;...

    华为短信的DEMO程序

    在实际项目中,开发者需要将这些DEMO中的代码集成到自己的应用系统中,并进行充分的测试,确保在不同网络环境和负载下,短信发送和接收的稳定性和效率。 通过研究华为短信DEMO程序,不仅可以掌握SMPP和SGIP协议的...

Global site tag (gtag.js) - Google Analytics