From 593ced817be4a1c1472c04efe77ae7422edc4dce Mon Sep 17 00:00:00 2001 From: jak Date: Sun, 1 Nov 2020 20:29:36 +0300 Subject: [PATCH] add support for already encrypted passwords --- README.md | 2 ++ mpesa/b2c.go | 13 ++++++++++--- mpesa/reversal.go | 12 +++++++++--- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index dfdd358..f982301 100644 --- a/README.md +++ b/README.md @@ -165,6 +165,7 @@ func b2CExample()(err error){ return } b2c := &mpesa.B2C{ + EncryptPassword: true, ShortCode:"123456", InitiatorUserName:"testapi115", InitiatorPassword:"Safaricom007@", @@ -222,6 +223,7 @@ func transactionStatusExample()(err error){ return } transactionStatus := &mpesa.TransactionStatus{ + EncryptPassword: true, PhoneNumber:"254712345678", InitiatorUserName:"testapi115", InitiatorPassword:"Safaricom007@", diff --git a/mpesa/b2c.go b/mpesa/b2c.go index 82fd04e..7e2fea7 100644 --- a/mpesa/b2c.go +++ b/mpesa/b2c.go @@ -25,6 +25,7 @@ type B2C struct { TimeOutCallBackURL string //optional defaults to "" Remarks string + EncryptPassword bool } //OK validates B2C @@ -120,10 +121,16 @@ func (s *Mpesa) B2C(b2c *B2C) (apiRes *APIRes, err error) { return } //encrypt password - securityCredential, err := EncryptPassword(b2c.InitiatorPassword, s.Config.Environment) - if err != nil { - return + var securityCredential string + if(b2c.EncryptPassword){ + securityCredential, err = EncryptPassword(b2c.InitiatorPassword, s.Config.Environment) + if err != nil { + return + } + }else{ + securityCredential = b2c.InitiatorPassword } + payload := &B2CPayload{ InitiatorName: b2c.InitiatorUserName, SecurityCredential: securityCredential, diff --git a/mpesa/reversal.go b/mpesa/reversal.go index 65a9632..37758ee 100644 --- a/mpesa/reversal.go +++ b/mpesa/reversal.go @@ -26,6 +26,7 @@ type Reversal struct { TimeOutCallBackURL string ResultCallBackURL string Remarks string + EncryptPassword bool } //OK validates @@ -137,9 +138,14 @@ func (s *Mpesa) Reverse(r *Reversal) (apiRes *APIRes, err error) { return } //encrypt password - securityCredential, err := EncryptPassword(r.InitiatorPassword, s.Config.Environment) - if err != nil { - return + var securityCredential string + if(r.EncryptPassword){ + securityCredential, err = EncryptPassword(r.InitiatorPassword, s.Config.Environment) + if err != nil { + return + } + }else{ + securityCredential = r.InitiatorPassword } amount := float32(math.Round(float64(r.Amount)*100) / 100)