`

华为网关短信发送和接收

    博客分类:
  • 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();
    }

}

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics