SMPP:否定响应 00000008

发布于 2025-01-04 02:19:35 字数 1320 浏览 1 评论 0原文

我想通过 jsmpp 发送 USSD 消息。当我发送消息时出现此错误

org.jsmpp.extra.NegativeResponseException: Negative response 00000008 found
        at org.jsmpp.session.AbstractSession.validateResponse(AbstractSession.java:215)
        at org.jsmpp.session.AbstractSession.executeSendCommand(AbstractSession.java:271)
        at org.jsmpp.session.SMPPSession.submitShortMessage(SMPPSession.java:320)

这是我的代码:

            int i = 2;
            short j = 2;
            OptionalParameter op1 = new OptionalParameter.Byte(Tag.USSD_SERVICE_OP, (byte) i);
            OptionalParameter op2 = new OptionalParameter.Byte(Tag.ITS_SESSION_INFO, (byte) j);
            OptionalParameter[] op = new OptionalParameter[2];

            op[0] = op2;
            op[1] = op1;

            messageId = session.submitShortMessage("USSD", TypeOfNumber.UNKNOWN,
                    NumberingPlanIndicator.UNKNOWN, sourceNumber, TypeOfNumber.UNKNOWN,
                    NumberingPlanIndicator.UNKNOWN, recipient, new ESMClass(142),
                    (byte) 0, (byte) 1, timeFormatter.format(new Date()), null,
                    new RegisteredDelivery(SMSCDeliveryReceipt.SUCCESS_FAILURE), (byte) 0,
                    DataCoding.newInstance(0),
                    (byte) 0, text.getBytes(), op);

I want send USSD messages via jsmpp. When I send message I get this error

org.jsmpp.extra.NegativeResponseException: Negative response 00000008 found
        at org.jsmpp.session.AbstractSession.validateResponse(AbstractSession.java:215)
        at org.jsmpp.session.AbstractSession.executeSendCommand(AbstractSession.java:271)
        at org.jsmpp.session.SMPPSession.submitShortMessage(SMPPSession.java:320)

Here is my code:

            int i = 2;
            short j = 2;
            OptionalParameter op1 = new OptionalParameter.Byte(Tag.USSD_SERVICE_OP, (byte) i);
            OptionalParameter op2 = new OptionalParameter.Byte(Tag.ITS_SESSION_INFO, (byte) j);
            OptionalParameter[] op = new OptionalParameter[2];

            op[0] = op2;
            op[1] = op1;

            messageId = session.submitShortMessage("USSD", TypeOfNumber.UNKNOWN,
                    NumberingPlanIndicator.UNKNOWN, sourceNumber, TypeOfNumber.UNKNOWN,
                    NumberingPlanIndicator.UNKNOWN, recipient, new ESMClass(142),
                    (byte) 0, (byte) 1, timeFormatter.format(new Date()), null,
                    new RegisteredDelivery(SMSCDeliveryReceipt.SUCCESS_FAILURE), (byte) 0,
                    DataCoding.newInstance(0),
                    (byte) 0, text.getBytes(), op);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不甘平庸 2025-01-11 02:19:35

参数ITS_SESSION_INFO一般用于维护会话,使用

OptionalParameter op2 = null;
for (OptionalParameter optionalParameter : deliverSm.getOptionalParametes()) {
    if (optionalParameter.tag == Tag.ITS_SESSION_INFO.code()) {
       op2 = optionalParameter;
    }
}
int i = 2;
OptionalParameter op[] = new OptionalParameter[2];
OptionalParameter op1 = new OptionalParameter.Byte(Tag.USSD_SERVICE_OP, (byte) i);
op[0] = op1;
if (op2 != null) {
    op[1] = op2;
}

The parameter ITS_SESSION_INFO in general is used to maintain a session, use

OptionalParameter op2 = null;
for (OptionalParameter optionalParameter : deliverSm.getOptionalParametes()) {
    if (optionalParameter.tag == Tag.ITS_SESSION_INFO.code()) {
       op2 = optionalParameter;
    }
}
int i = 2;
OptionalParameter op[] = new OptionalParameter[2];
OptionalParameter op1 = new OptionalParameter.Byte(Tag.USSD_SERVICE_OP, (byte) i);
op[0] = op1;
if (op2 != null) {
    op[1] = op2;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文