diff --git a/app/celery/tasks.py b/app/celery/tasks.py index 720bed74d..8ee59a00a 100644 --- a/app/celery/tasks.py +++ b/app/celery/tasks.py @@ -320,7 +320,7 @@ def send_sms_code(encrypted_verification): mmg_client.send_sms(validate_and_format_phone_number(verification_message['to']), verification_message['secret_code'], 'send-sms-code') - except Exception as e: + except MMGClientException as e: current_app.logger.exception(e) diff --git a/app/clients/sms/mmg.py b/app/clients/sms/mmg.py index 9efffee88..687696055 100644 --- a/app/clients/sms/mmg.py +++ b/app/clients/sms/mmg.py @@ -52,16 +52,20 @@ class MMGClient(SmsClient): "reqType": "BULK", "MSISDN": to, "msg": content, - "sender": self.from_number + "sender": self.from_number, + "cid": reference } start_time = monotonic() try: + import json response = request("POST", "https://www.mmgrp.co.uk/API/json/api.php", - data=data) + data=json.dumps(data), + headers={'Content-Type': 'application/json', + 'Authorization': 'Basic {}'.format(self.api_key)}) if response.status_code != 200: - error = response.json - raise MMGClientException(error) + error = response.text + raise MMGClientException(json.loads(error)) response.raise_for_status() except RequestException as e: api_error = HTTPError.create(e)