OVH Community, votre nouvel espace communautaire.

Problème avec la fonction soapi TelephonySmsMultiSend


vds-phil
06/05/2014, 11h33
Bonjour,

Nous avons développé un programme pour la gestion du marketing au sein de notre société (grossiste horeca). Nous envoyons régulièrement des SMS à nos clients pour des actions promotionnelles (avec leur accord naturellement).
Nous avons donc décidé d'inclure la fonction SMS à notre programme. cependant, nous avons un problème avec la fonction SmsMultiSend.

En effet, nous avons développé un petit utilitaire pour tester les fonctionnalités soapi SMS avant de l'intégrer à notre programme complet.

Tout fonctionne très bien avec la fonction telephonySmsSend.

Avec la fonction TelephonySmsMultiSend, nous avons le message d'erreur suivant :
---------------------------
Wsdlsoapi
---------------------------
Following receivers phone number are invalid : "HASH(0x13395c08)"


alors que nous envoyons le SMS aux 2 mêmes numéros qu'avec la fonction telephonySmsSend.

Est-ce que quelqu'un peut aider ?

Merci beaucoup pour votre aide

Code:
// -----------------------------------------------------------------------------
{ Project    : Webservices testprogram
  Executable : WsdlSoapi
  File       : MainForm.pas
  Author     : Marc Georges
  Compiler   : Delphi 2010
  Contents   : Main form
  History    : 10/04/14
}
// WSDL Vies
// http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl
// HTTPRIO is created by GetcheckVatPortType
// WSDL Soapi
// http://www.ovh.com/soapi/soapi-dlw-1.63.wsdl
// HTTPRIO is created by GetmanagerPortType
// -----------------------------------------------------------------------------
Unit MainForm;
// -------------------------------------------------------------------------------------------------
Interface
Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,
   ExtCtrls;
// -------------------------------------------------------------------------------------------------
Type
   TfrmMain = Class( TForm )
      Panel1: TPanel;
    btnSendSms: TButton;
    btnMultiSend: TButton;
      GroupBox1: TGroupBox;
      Splitter1: TSplitter;
      GroupBox2: TGroupBox;
      edtAccount: TLabeledEdit;
      edtPassWord: TLabeledEdit;
      edtSmsAccount: TLabeledEdit;
      edtBxl: TLabeledEdit;
      edtLiege: TLabeledEdit;
      edVAT: TLabeledEdit;
      GroupBox3: TGroupBox;
      Panel2: TPanel;
      edtTo1: TLabeledEdit;
      edtTo2: TLabeledEdit;
    memMessageText: TMemo;
      GroupBox4: TGroupBox;
    memLog: TMemo;
      Splitter2: TSplitter;
      Procedure btnSendSmsClick( Sender: TObject );
      Procedure btnMultiSendClick( Sender: TObject );
   Private
    { Private declarations }
   Public
    { Public declarations }
   End;
// -------------------------------------------------------------------------------------------------
Var
   frmMain: TfrmMain;
// -------------------------------------------------------------------------------------------------
Implementation
Uses soapi_dlw_1;
{$R *.dfm}
// -------------------------------------------------------------------------------------------------
Procedure TfrmMain.btnSendSmsClick( Sender: TObject );
Var
   SmsManager: managerPortType;
   SmsSession: String;
   Lang: String;
Begin
   screen.Cursor := crHourGlass;
   Try
      Lang := 'fr';
      SmsManager := GetmanagerPortType( );
      memLog.Lines.Add( 'SmsManager initialised');
      Try
         SmsSession := SmsManager.login( edtAccount.Text, edtPassWord.Text, Lang, false );
         memLog.Lines.Add( 'OVH-Login succeeded' );
      Except
         On E: Exception Do
            Begin
               memLog.Lines.Add( 'Login failure '  + sLineBreak + E.Message );
            End;
      End;
      If edtTo1.Text <> EmptyStr Then
         Begin
{ telephonySmsSend }
            SmsManager.telephonySmsSend(
                       SmsSession,
                       edtSmsAccount.Text,
                       edtBxl.Text,
                       edtTo1.Text,
                       memMessageText.Lines.Text,
                       0,
                       0,
                       0, 0,
                       0,
                       '',
                       false );
            memLog.Lines.Add( 'SmsSend ' + edtTo1.Text + ' successfull' );
         End;
      If edtTo2.Text <> EmptyStr Then
         Begin
{ telephonySmsSend }
            SmsManager.telephonySmsSend(
                       SmsSession,
                       edtSmsAccount.Text,
                       edtBxl.Text,
                       edtTo2.Text,
                       memMessageText.Lines.Text,
                       0,
                       0,
                       0,
                       0,
                       0,
                       '',
                       false );
            memLog.Lines.Add( 'SmsSend ' + edtTo2.Text + ' successfull' );
         End;
      SmsManager.logout( SmsSession );
      memLog.Lines.Add( 'OVH-Logout success'  );
   Except
      memLog.Lines.Add( 'Something went wrong' );
   End;
   screen.Cursor := crDefault;
End;
// -------------------------------------------------------------------------------------------------
Procedure TfrmMain.btnMultiSendClick( Sender: TObject );
Var
   SmsManager: managerPortType;
   SmsSession: String;
   Lang: String;
   aString: item8;
   ToList: MyArrayOfStringType;
Begin
   Try
      Lang := 'fr';
      SmsManager := GetmanagerPortType( );
      memLog.Lines.Add( 'SmsManager initialised'  );
      Try
         SmsSession := SmsManager.login( edtAccount.Text, edtPassWord.Text, Lang, false );
         memLog.Lines.Add( 'OVH-Login success' );
      Except
         On E: Exception Do
            Begin
               memLog.Lines.Add( 'Login failure ' + sLineBreak + E.Message );
            End;
      End;
      { prepare number of items in MyArrayOfStringType }
      SetLength( ToList, 2 );
      { Add first number}
      aString := edtTo1.Text;
      ToList[0] := aString;
      { Add second number}
      aString := edtTo2.Text;
      ToList[1] := aString;
      memLog.Lines.Add( SmsSession + ' ' + ToList[0] + ' ' + ToList[1] + ' sendtest' );

{ telephonySmsMultiSend }
      SmsManager.telephonySmsMultiSend(
                      SmsSession { const session: string; } ,
                      edtSmsAccount.Text { const smsAccount: string; } ,
                      edtLiege.Text { const numberFrom: string; } ,
                      ToList { const numberTo: MyArrayOfStringType; } ,
                      memLog.Lines.Text { const message_: string; } ,
                      0 { const smsValidity: Integer; } ,
                      0 { const smsClass: Integer; } , 0 { const smsDeferred: Integer; } ,
                      0 { const smsPriority: Integer; } ,
                      0 { const smsCoding: Integer; } ,
                      '' { const tag: string; } ,
                      '' { const numberToCsv: string; } ,
                      false { const noStop: Boolean } );
      memLog.Lines.Add( 'SmsSend success'  );
      SmsManager.logout( SmsSession );
      memLog.Lines.Add( 'OVH-Logout success' );
   Finally
      memLog.Lines.Add( 'Something went wrong' );
      screen.Cursor := crDefault;
   End;
End;
// -------------------------------------------------------------------------------------------------
End.