使用SOAP服务在Node Js中发送SMS

时间:2018-10-02 06:55:00

标签: node.js web-services soap wsdl

我正在使用Node Js在项目中创建一个用户帐户。用户注册时,用户必须提供其namemobilepassword。给出手机号码后,应使用2FA,SMS OTP进行身份验证。

在这里,我不使用Twillo或其他产品,因为客户端使用了具有用户名和密码的本地SMS网关。但是那里的文档仅支持C#,php和Java。没有Node Js。但是他们在following link中以WSDL的形式提供Web服务。我可以使用该Web服务通过Node Js发送SMS OTP吗?请帮忙。预先感谢。

这是我的用户模型和用户控制器:

用户模型

var mongoose = require('mongoose');  

var userSchema = new mongoose.Schema(
{
  name: {type: String, required: true, max: 25, trim: true},
  mobile: {type: String, required: true, unique:true, trim: true, sparse: true},
  password: {type: String, required: true, min: 6},

  is_verified:{type: Boolean, default:0}, //<<<<<<<<<<<<<<<<  After SMS OTP, will true    
},
{
    timestamps:true
});

mongoose.model('User', userSchema);
module.exports = mongoose.model('User');

用户的控制器

router.post("/register", upload.single('image'), function (req, res, next)
{

    // All validation Here
    var hashedPassword = bcrypt.hashSync(req.body.password, 10); 
    const objUser = new User(
    {
      name : req.body.name,
      mobile : req.body.mobile,
      password : hashedPassword      
    });

  soap.createClient(wsdlUrl, function(err, soapClient)
  {
    // we now have a soapClient - we also need to make sure there's no `err` here. 
    if (err)
    {
      return res.status(500).json(err);
    }
    soapClient.user({ 
      customer : 1,
      id : 1,
      password : 'username',
      username : 'password'
    }, function(err, result)
    {
      if (err)
      {
        return res.status(500).json(err);
      }
      return res.json(result);  
    });
  });


     // <<<<<<<<<< Here I want to send SMS

      objUser.save((err) =>
      {
        if (err)
        {
          return next(err);
        }
        res.status(201).send(" The registration ok. No problems")

        );
      });
}) 

0 个答案:

没有答案