diff --git a/mpesa/api/mpesa_express.py b/mpesa/api/mpesa_express.py index 1c4a84b..0b5c104 100644 --- a/mpesa/api/mpesa_express.py +++ b/mpesa/api/mpesa_express.py @@ -34,10 +34,10 @@ def stk_push(self, business_shortcode=None, passcode=None, amount=None, callback time = str(datetime.datetime.now()).split(".")[0].replace("-", "").replace(" ", "").replace(":", "") password = "{0}{1}{2}".format(str(business_shortcode), str(passcode), time) - encoded = base64.b64encode(password) + encoded = base64.b64encode(bytes(password, encoding='utf8')) payload = { "BusinessShortCode": business_shortcode, - "Password": encoded, + "Password": encoded.decode("utf-8"), "Timestamp": time, "TransactionType": "CustomerPayBillOnline", "Amount": amount, @@ -78,10 +78,10 @@ def query(self, business_shortcode=None, checkout_request_id=None, passcode=None time = str(datetime.datetime.now()).split(".")[0].replace("-", "").replace(" ", "").replace(":", "") password = "{0}{1}{2}".format(str(business_shortcode), str(passcode), time) - encoded = base64.b64encode(password) + encoded = base64.b64encode(bytes(password, encoding='utf8')) payload = { "BusinessShortCode": business_shortcode, - "Password": encoded, + "Password": encoded.decode("utf-8"), "Timestamp": time, "CheckoutRequestID": checkout_request_id } diff --git a/mpesa/api/transaction_status.py b/mpesa/api/transaction_status.py index f33bd6b..b82c3ce 100644 --- a/mpesa/api/transaction_status.py +++ b/mpesa/api/transaction_status.py @@ -41,14 +41,14 @@ def check_transaction_status(self, party_a=None, identifier_type=None, remarks=N time = str(datetime.datetime.now()).split(".")[0].replace("-", "").replace(" ", "").replace(":", "") password = "{0}{1}{2}".format(str(shortcode), str(passcode), time) - encoded = base64.b64encode(password) + encoded = base64.b64encode(bytes(password, encoding='utf-8')) payload = { "CommandID": "TransactionStatusQuery", "PartyA": party_a, "IdentifierType": identifier_type, "Remarks": remarks, "Initiator": initiator, - "SecurityCredential": encoded, + "SecurityCredential": encoded.decode("utf-8"), "QueueTimeOutURL": queue_timeout_url, "ResultURL": result_url, "TransactionID": transaction_id, diff --git a/mpesa/tests/test_mpesa_express.py b/mpesa/tests/test_mpesa_express.py index f3bd56b..3ccf3bb 100644 --- a/mpesa/tests/test_mpesa_express.py +++ b/mpesa/tests/test_mpesa_express.py @@ -31,5 +31,5 @@ def test_stk_push(self): description="RANDOM DESCRIPTION" ) print(str(self.response)) - assert self.response.get('ResponseDescription', None) is not None + assert self.response.get('ResponseDescription', None) is not None or self.response.get('errorMessage', None) is not None