2016-09-20 2 views
1

Je suis en train de tester l'API Clickatell pour intégrer les confirmations SMS dans mon application php, j'ai utilisé leur API de repos pour m'envoyer le message pour tester mais les messages N'arrive jamais.Clickatell API enverra un message avec succès, mais je ne peux jamais recevoir le message

Mes tentatives

J'ai utilisé ce https://www.clickatell.com/developers/api-docs/get-coverage-rest/ pour vérifier la couverture et ce fut la réponse JSON:

object(stdClass)[54] 
    public 'data' => 
    object(stdClass)[57] 
     public 'routable' => boolean true 
     public 'destination' => string ' 21655609125' (length=12) 
     public 'minimumCharge' => float 0.8 

J'ai aussi fait que le message est effectivement envoyé par vérification de l'état; et ce fut la réponse JSON:

object(stdClass)[54] 
    public 'data' => 
    object(stdClass)[57] 
     public 'charge' => float 0.8 
     public 'messageStatus' => string '004' (length=3) 
     public 'description' => string 'Received by recipient' (length=21) 
     public 'apiMessageId' => string 'b57f4a28dece65a134b56be2010c8a78' (length=32) 
     public 'clientMessageId' => string '' (length=0) 

J'ai ensuite essayé leur propre site Web pour les rapports de messages envoyés et c'est ce que je vois:

Merci MESSAGE DE CONTENU pour la couverture de la passerelle de tests Clickatell. Vous serez en mesure de changer le contenu de votre message après votre achat initial de crédits de message.

réseau mobile Tunisie: Orange pour 21655609125

reçu par le destinataire (état 4)

Mais je ne reçois le message moi-même. Quel pourrait être le problème?

Edit: voici la classe complète j'utilise dans mon application actuellement

<?php 

if (! defined('ABSPATH')) { 
    exit; // Exit if accessed directly 
} 

/** 
* MC_SMS class 
*/ 
class MC_SMS { 

    public $rest_uri = 'https://api.clickatell.com/rest'; 
    public $method  = 'post'; 
    public $args  = array(); 

    /** 
    * Constructor 
    */ 
    public function __construct($action, $data = null) { 

     $this->data = $data; 
     $this->init(); 

     switch($action) : 

      // Send message 
      case 'send' : 

       $this->endpoint = '/message'; 
       $this->method = 'post'; 

       break; 

      // Message status 
      case 'status' : 

       $this->endpoint = '/message/' . $data; 
       $this->method = 'get'; 

       break; 

      // Network coverage 
      case 'coverage' : 

       $this->endpoint = '/coverage/' . $data; 
       $this->method = 'get'; 

       break; 

      // Account balance 
      case 'balance' : 

       $this->endpoint = '/account/balance'; 
       $this->method = 'get'; 

       break; 

     endswitch; 

     $this->queried_uri = $this->rest_uri . $this->endpoint; 
     $this->do_request(); 

     $this->response = (isset($this->response_body['body'])) ? json_decode($this->response_body['body']) : null; 
    } 

    /** 
    * Init. 
    */ 
    public function init() { 
     $this->headers = array(
       'X-Version'  => 1, 
       'Authorization' => 'Bearer ClHrbIEo_LwAlSVTSMemBIA5Gmvz8HNb5sio3N9GVDdAO_PPJPaZKzdi8Y8cDSmrs4A4', 
       'Content-Type' => 'application/json', 
       'Accept'  => 'application/json' 
     ); 

     $this->data = (! empty($this->data) && is_array($this->data)) ? json_encode($this->data) : null; 

     $this->args['headers'] = $this->headers; 

     if ($this->data) { 
      $this->args['body'] = $this->data; 
     } 
    } 

    /** 
    * Do the API request 
    */ 
    public function do_request() { 

     if ($this->method == 'get') { 
      $this->response_body = wp_remote_get($this->queried_uri, $this->args); 
     } 

     if ($this->method == 'post') { 
      $this->response_body = wp_remote_post($this->queried_uri, $this->args); 
     } 
    } 

} 
+0

Avez-vous payé pour un compte? – WillardSolutions

+0

Pas encore :) Je ne fais que le tester avec les crédits de test pour décider si cela fonctionnera pour mon application ou non. –

+0

Post le code que vous avez utilisé pour envoyer un message – WillardSolutions

Répondre

1

Avant de payer l'argent et tout en utilisant les crédits d'essai, le message que vous atteint est le texte: Merci MESSAGE DE CONTENU pour les tests La couverture de la passerelle de Clickatell. Vous pourrez changer le contenu de votre message après votre achat initial de crédits de message. Cela signifie que vous avez envoyé et reçu un sms avec succès sur votre appareil, et ce, avec succès. Vos propres messages réels sont vus par les appareils du destinataire seulement après que vous avez payé des crédits.

0

Dans le prolongement de @Dimitris Magdalinos' answer qui semble être correct, le following documentation has this to say (Souligné par l'auteur):

Vous pouvez commencer à tester la passerelle en utilisant les méthodes décrites dans le chapitre « Les tâches quotidiennes ». Toutefois, s'il vous plaît noter que si vous utilisez les 10 crédits SMS gratuits qui sont venus avec le compte, jusqu'à ce que vous avez acheté des crédits Clickatell remplacera le contenu avec vous remercier texte comme le message ci-dessous:

Merci pour le test La couverture de la passerelle de Clickatell. Vous pourrez changer le contenu de votre message après votre achat initial de crédits de message.