我尝试使用node-smpp和ActiveXperts free demo service发送短信。
以下是ActiveXperts文档所说的发送免费演示消息的内容:
根据node-smpp documentation,这是我的代码:
var smpp = require('smpp');
var session = smpp.connect('smpp.activexperts-labs.com', 2775);
session.bind_transceiver({}, function(pdu) {
console.log(pdu);
if (pdu.command_status == 0) {
// Successfully bound
session.submit_sm({
destination_addr: '1234567890',
short_message: 'Hello!'
}, function(pdu) {
if (pdu.command_status == 0) {
// Message successfully sent
console.log(pdu.message_id);
}
});
}
});
这是我的PDU响应:
PDU {
command_length: 32,
command_id: 2147483657,
command_status: 14,
sequence_number: 1,
command: 'bind_transceiver_resp',
system_id: 'ActiveXperts GW' }
显然没有调用发送消息(session.submit_sm
)的函数,因为pdu结果command_status
= 14而不是if语句需要if (pdu.command_status == 0)
。
我删除了if语句,但邮件仍然没有发送。我有什么想法我做错了。
答案 0 :(得分:0)
在您的代码中,您传递了一个空对象作为bind_transceiver方法的参数。您需要传递smpp凭据,如下所示:
session.bind_transceiver({
system_id: 'YOUR_SYSTEM_ID',
password: 'YOUR_PASSWORD'
}, function(pdu) {