Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private String url = "http://api.mobilesms.vn:8208/sendmt?wsdl";
- private String username;
- private String password;
- private String serviceId;
- private MessageFactory factory;
- private String namespace = "http://service.gateway.com/xsd";
- @Override
- public void sendSMS(String phone, String content) throws Exception {
- SOAPMessage soapMsg = createSOAPMessage(phone, content);
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- soapMsg.writeTo(outputStream);
- String data = new String(outputStream.toByteArray());
- HttpResponse<String> response = Unirest.post(url).header("Content-Type", "text/xml").body(data).asString();
- String bodyResponse = response.getBody();
- getLogger().info("NganTra response: {}", bodyResponse);
- }
- @Override
- public void init(PuObject config) {
- this.url = config.getString("nganTraUrl", url);
- this.username = config.getString("nganTraUsername", "trungduc");
- this.password = config.getString("nganTraPassword", "Trungduc@123!@#");
- this.serviceId = config.getString("nganTraServiceId", "Verify");
- try {
- factory = MessageFactory.newInstance();
- } catch (SOAPException e) {
- getLogger().error("error when create message factory", e);
- }
- }
- private SOAPMessage createSOAPMessage(String phone, String content) throws SOAPException {
- SOAPMessage soapMsg = factory.createMessage();
- SOAPPart part = soapMsg.getSOAPPart();
- SOAPEnvelope envelope = part.getEnvelope();
- SOAPBody body = envelope.getBody();
- envelope.addNamespaceDeclaration("xs", namespace);
- envelope.setPrefix("soapenv");
- body.setPrefix("soapenv");
- SOAPHeader header = envelope.getHeader();
- header.setPrefix("soapenv");
- SOAPBodyElement element = body.addBodyElement(envelope.createName("contentRequest", "xs", namespace));
- element.setPrefix("xs");
- envelope.removeNamespaceDeclaration("SOAP-ENV");
- element.addChildElement("username", "xs").addTextNode(username);
- element.addChildElement("password", "xs").addTextNode(password);
- element.addChildElement("serviceId", "xs").addTextNode(serviceId);
- element.addChildElement("receiver", "xs").addTextNode(phone);
- element.addChildElement("content", "xs").addTextNode(content);
- element.addChildElement("isUnicode", "xs").addTextNode("0");
- element.addChildElement("transId", "xs").addTextNode(UUID.randomUUID().toString());
- soapMsg.saveChanges();
- return soapMsg;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement