Server IP : 108.163.255.210 / Your IP : 3.144.104.118 Web Server : Apache System : Linux blossom.urlnameserver.com 3.10.0-1160.80.1.el7.x86_64 #1 SMP Tue Nov 8 15:48:59 UTC 2022 x86_64 User : ( 1172) PHP Version : 7.2.34 Disable Function : eval,escapeshellarg,proc_close,proc_get_status,proc_nice,proc_open,symlink,system,pcntl_exec,getrusage,chown,chgp,closelog,openlog,syslog,define_syslog_variables,php_ini_loaded_file,getservbyname,getservbyport,posix_getgid,posix_getgrgid,proc_terminate,pfsockopen,apache_child_terminate,posix_mkfifo,posix_setpgid,posix_setuid,hypot,pg_host,pos,posix_access,posix_getcwd,posix_getservbyname,myshellexec,getpid,posix_getsid,posix_isatty,posix_kill,posix_mknod,posix_setgid,posix_setsid,posix_setuid,posix_times,posix_uname,ps_fill,posix_getpwuid,global,ini_restore,zip_open,zip_read,rar_open,bzopen,bzread,bzwrite,apache_get_modules,apache_get_version,phpversionphpinfo,php_ini_scanned_files,get_current_user,disk_total_space,diskfreespace,leak,imap_list,hypo,filedump,safe_mode,getmygid,apache_getenv,apache_setenv,bzread,bzwrite,bzopen,phpini,higlight_file,dos_conv,get_cwd,er_log,cmd,e_name,vdir,get_dir,only_read,ftok,ftpexec,posix_getpwnam,mysql_list_dbs,disk_free_space,session_save_path,confirm_phpdoc_compiled,zip_entry_rea,php_u,psockopen,crack_opendict,crack_getlastmessage,crack_closedict,crack_check,fpassthru,posix_get_last_error,posix_getlogin,posix_getgroups,posix_strerror,posix_getrlimit,posix_getpgrp,posix_getgrnam,pos,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/unilinki/public_html/shop/vendor/osenco/mpesa/ |
Upload File : |
# MPESA API Responses This file includes instructions and sample code for processing callback data sent from Safaricom. It includes sample responses from Safaricom and how to process them accordingly. ## STK Response Data ### Sample Response ```json { "Body":{ "stkCallback":{ "MerchantRequestID":"19465-780693-1", "CheckoutRequestID":"ws_CO_27072017154747416", "ResultCode":0, "ResultDesc":"The service request is processed successfully.", "CallbackMetadata":{ "Item":[ { "Name":"Amount", "Value":1 }, { "Name":"MpesaReceiptNumber", "Value":"LGR7OWQX0R" }, { "Name":"Balance" }, { "Name":"TransactionDate", "Value":20170727154800 }, { "Name":"PhoneNumber", "Value":254721566839 } ] } } } } ``` ### Sample Callback Function ```php function mpesa_stk_callback($response) { $data = $response["Body"]["stkCallback"]; $MerchantRequestID = $data["MerchantRequestID"]; $CheckoutRequestID = $data["CheckoutRequestID"], $ResultCode = $data["ResultCode"], $ResultDesc = $data["ResultDesc"], $CallbackMetadata = $data["CallbackMetadata"]; $Amount = $CallbackMetadata["Item"][0]["Value"]; $MpesaReceiptNumber = $CallbackMetadata["Item"][1]["Value"]; $Balance = $CallbackMetadata["Item"][2]["Value"]; $TransactionDate = $CallbackMetadata["Item"][3]["Value"]; $PhoneNumber = $CallbackMetadata["Item"][4]["Value"]; // Do something with the variables above then return true or false return true } ``` ## C2B Response Data ### Sample Response ```json { "Body": { "stkCallback": { "MerchantRequestID":"19465-780693-1", "CheckoutRequestID":"ws_CO_27072017154747416", "ResultCode":0, "ResultDesc":"The service request is processed successfully.", "CallbackMetadata": { "Item": [ { "Name":"Amount", "Value":1 }, { "Name":"MpesaReceiptNumber", "Value":"LGR7OWQX0R" }, { "Name":"Balance" }, { "Name":"TransactionDate", "Value":20170727154800 }, { "Name":"PhoneNumber", "Value":254721566839 } ] } } } } ``` ### Sample Callback Function ```php function mpesa_c2b_callback($response) { $data = $response["Body"]["stkCallback"]; $MerchantRequestID = $data["MerchantRequestID"]; $CheckoutRequestID = $data["CheckoutRequestID"], $ResultCode = $data["ResultCode"], $ResultDesc = $data["ResultDesc"], $CallbackMetadata = $data["CallbackMetadata"]; $Amount = $CallbackMetadata["Item"][0]["Value"]; $MpesaReceiptNumber = $CallbackMetadata["Item"][0]["Value"]; $Balance = $CallbackMetadata["Item"][0]["Value"]; $TransactionDate = $CallbackMetadata["Item"][0]["Value"]; $PhoneNumber = $CallbackMetadata["Item"][0]["Value"]; // Do something with the variables above then return true or false return true } ``` ## B2C Response Data ### Sample Response ```json { "Result": { "ResultType":0, "ResultCode":0, "ResultDesc":"The service request has been accepted successfully.", "OriginatorConversationID":"19455-424535-1", "ConversationID":"AG_20170717_00006be9c8b5cc46abb6", "TransactionID":"LGH3197RIB", "ResultParameters": { "ResultParameter": [ { "Key":"TransactionReceipt", "Value":"LGH3197RIB" }, { "Key":"TransactionAmount", "Value":8000 }, { "Key":"B2CWorkingAccountAvailableFunds", "Value":150000 }, { "Key":"B2CUtilityAccountAvailableFunds", "Value":133568 }, { "Key":"TransactionCompletedDateTime", "Value":"17.07.2017 10:54:57" }, { "Key":"ReceiverPartyPublicName", "Value":"254708374149 - John Doe" }, { "Key":"B2CChargesPaidAccountAvailableFunds", "Value":0 }, { "Key":"B2CRecipientIsRegisteredCustomer", "Value":"Y" } ] }, "ReferenceData":{ "ReferenceItem":{ "Key":"QueueTimeoutURL", "Value":"https://internalsandbox.safaricom.co.ke/mpesa/b2cresults/v1/submit" } } } } ``` ### Sample Callback Function ```php function mpesa_b2c_callback($response) { $data = $response["Result"]; $ResultType = $data["ResultType"]; $ResultCode = $data["ResultCode"]; $ResultDesc = $data["ResultDesc"]; $OriginatorConversationID = $data["OriginatorConversationID"]; $ConversationID = $data["ConversationID"]; $TransactionID = $data["TransactionID"]; $ResultParameters = $data["ResultParameters"]["ResultParameter"]; $QueueTimeoutURL = $data["ReferenceData"]["ReferenceItem"][0]["Value"]; $TransactionReceipt = $ResultParameters[0]["Value"]; $TransactionAmount = $ResultParameters[1]["Value"]; $B2CWorkingAccountAvailableFunds = $ResultParameters[2]["Value"]; $B2CUtilityAccountAvailableFunds = $ResultParameters[3]["Value"]; $TransactionCompletedDateTime = $ResultParameters[4]["Value"]; $ReceiverPartyPublicName = $ResultParameters[5]["Value"]; $B2CChargesPaidAccountAvailableFunds = $ResultParameters[6]["Value"]; $B2CRecipientIsRegisteredCustomer = $ResultParameters[7]["Value"]; // Do something with the variables above then return true or false return true } ```