معرفی شرکت ها


Flask-Mpesa-1.2.8


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

A Safaricom's DarajaAPI2.0 Package for Flask Applications.
ویژگی مقدار
سیستم عامل OS Independent
نام فایل Flask-Mpesa-1.2.8
نام Flask-Mpesa
نسخه کتابخانه 1.2.8
نگهدارنده []
ایمیل نگهدارنده []
نویسنده Allan Namasaka Sifuna
ایمیل نویسنده allansifuna324@gmail.com
آدرس صفحه اصلی https://github.com/allansifuna/flask-mpesa
آدرس اینترنتی https://pypi.org/project/Flask-Mpesa/
مجوز BSD
| Key | Badge | | ------------- | ------------- | | Testing Status | [![Codacy Badge](https://api.codacy.com/project/badge/Grade/95668732c0014077abf06e7826c1becf)](https://www.codacy.com/manual/allansifuna/Flask-Mpesa?utm_source=github.com&utm_medium=referral&utm_content=allansifuna/Flask-Mpesa&utm_campaign=Badge_Grade) [![Coverage Status](https://coveralls.io/repos/github/allansifuna/Flask-Mpesa/badge.svg?branch=master)](https://coveralls.io/github/allansifuna/Flask-Mpesa?branch=master) | | Size | ![Code size](https://img.shields.io/github/languages/code-size/allansifuna/Flask-Mpesa?color=dark-green)| | Compatibility | ![Top language](https://img.shields.io/github/languages/top/allansifuna/Flask-Mpesa) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/Flask-Mpesa?color=dark-green) ![PyPI - Implementation](https://img.shields.io/pypi/implementation/Flask-Mpesa?color=blue) | | Version Info. | ![PyPI](https://img.shields.io/pypi/v/Flask-Mpesa) ![PyPI-Downloads](https://img.shields.io/pypi/dw/flask-mpesa?color=blue&label=PyPI-Downloads) | | Licence | ![GitHub](https://img.shields.io/github/license/allansifuna/Flask-Mpesa?color=dark-green) | # Flask-Mpesa Flask-Mpesa provides a simple intergration for flask Applications with Mpesa Daraja API. ## Installation Use the package manager [pip](https://pip.pypa.io/en/stable/) to install flask-mpesa. ```bash pip install Flask-Mpesa ``` ## QuickStart ```python from flask import Flask from flask_mpesa import MpesaAPI app=Flask(__name__) mpesa_api=MpesaAPI(app) ``` ## if you are using blueprints ```python from flask_mpesa import MpesaAPI mpesa_api=MpesaAPI() mpesa_api.init_app(app) ``` ### Be sure to set the following variables in the app.config ```python app.config["API_ENVIRONMENT"] = "sandbox" #sandbox or production app.config["APP_KEY"] = "..." # App_key from developers portal app.config["APP_SECRET"] = "..." #App_Secret from developers portal ``` ## Usage For the api requests to be processed by safaricom, they need to be secure. This means that your urls should use https instead of http protocal. I recommend use of a port tunneling app like Ngrok. ## Sample Credentials For testing your application, You should acquire test cedentials from [Daraja API's Portal](https://developer.safaricom.co.ke) but if you the credentials don't work for you, you can use the credentials below:- | Key | Value | | ------------- | ------------- | | app_key | vbxsneeZ9IMFoyKKIgOIQQZFlawAADnP | | app_secret | WAzDhQVhitIXwiTc | | initiator_name | testapi364 | | party_a | 600364 | | security_credential | TziD/ydlT52Fm6SOH1ebrzUFwy3cP6OGplsrWja+X/1roQy2AzMsj5QGuqu9O+IFR1E6l16Jm87tg4bhnxoIhAufCEWusQI1wJZ6YLzpN0cHZAY/8SN1JfHdgEkrmksAY14pejHyfntyLT9Sg51kBjaj6J7/2+gHl2e64klnJAhlfPJWxC18zwEzsg58zFmypcovPPB6MHkPLyHQNFbu4oXC0e2gkZrIAWXTNN7PpYt4m/w39s5txU7/6P7hTzXgYAgqk4kxfPBIBeEmKhH5tSGxMD+xnSpZIXLovFgopexq8S76pmdLMjr2CdR60GlwXnAPnKJ5U9CIxRRewuoksQ== | | business_shortcode | 174379 | | passcode | bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919 | NOTE: These credentials are for a sample sandbox application and cannot be used in production. ### B2C Api This returns a json response to your result_url. ```python @app.route('/transact/b2c',methods=['GET']) def b2c_transact(): data={"initiator_name": "[InitiatorName]", "security_credential": "[SecurityCredential]",#from developers portal "amount": "1000", "command_id":"[command_id]", "party_a": "[PartyA]", "party_b": "[PartyB]", "remarks": "[Remarks]", "queue_timeout_url": "YOUR_URL" , "result_url": "YOUR_URL", "occassion": "[Occassion]" } mpesa_api.B2C.transact(**data) # ** unpacks the dictionary ``` ### B2B Api This returns a json response to your result_url. ```python @app.route('/transact/b2b') def b2b_transact(): data={"initiator": "[Initiator]", "security_credential": "[SecurityCredential]",#from developers portal "amount": "1000", "command_id":"[command_id]", "sender_identifier_type":"[SenderIdentifierType]", "receiver_identifier_type":"[ReceiverIdentifierType]", "party_a": "[PartyA]", "party_b": "[PartyB]", "remarks": "[Remarks]", "queue_timeout_url": "YOUR_URL" , "result_url": "YOUR_URL", "account_reference": "[AccountReference]" } mpesa_api.B2B.transact(**data) # ** unpacks the dictionary ``` ### C2B api ```python @app.route('/transact/c2b') def c2b_transact(): reg_data={"shortcode": "600364", "response_type": "Completed", "confirmation_url": "https://example.com/confirmation", "validation_url": "https://example.com/validation" } v=mpesa_api.C2B.register(**reg_data) # ** unpacks the dictionary ##use v to capture the response #This method allows you to test a mock payment and see the result so it can be avoided in production mode. test_data={"shortcode": "600364", "command_id": "CustomerPayBillOnline", "amount": "100", "msisdn": "254708374149", "bill_ref_number": "account" } new_v = mpesa_api.C2B.simulate(**test_data) # ** unpacks the dictionary #use new_v to capture the response return render_template('home.html') @app.route('/confirmation',methods=["POST"]) def c2b_confirmation(): #save the data request_data = request.data #Perform your processing here e.g. print it out... print(request_data) ``` ### MpesaExpress api ```python @app.route('/transact/mpesaexpress') def simulate_stk_push(): data = { "business_shortcode": "[BusinessShortcode]", #from developers portal "passcode": "[Passcode]",#from developers portal "amount": "[Amount]", # choose amount preferrably KSH 1 "phone_number":"[PhoneNumber]", #phone number to be prompted to pay "reference_code": "[Reference Code]",#Code to inform the user of services he/she is paying for. "callback_url": "[YOUR_URL]", # cllback url should be exposes. for testing putposes you can route on host 0.0.0.0 and set the callback url to be https://youripaddress:yourport/endpoint "description": "[Description]" #a description of the transaction its optional } resp = mpesa_api.MpesaExpress.stk_push(**data) # ** unpacks the dictionary ##use resp to capture the response return render_template('home.html') @app.route('/callback-url',methods=["POST"]) def callback_url(): #get json data set to this route json_data = request.get_json() #get result code and probably check for transaction success or failure result_code=json_data["Body"]["stkCallback"]["ResultCode"] message={ "ResultCode":0, "ResultDesc":"success", "ThirdPartyTransID":"h234k2h4krhk2" } #if result code is 0 you can proceed and save the data else if its any other number you can track the transaction return jsonify(message),200 ``` ### Balance api ```python @app.route('/transact/balance') def balance(): data = {"initiator": "", "security_credential": "", "command_id": "AccountBalance", "party_a": "", "identifier_type": "", "remarks": "", "queue_timeout_url": "", "result_url": "" } balance_response = mpesa_api.Balance.get_balance(**data) # ** unpacks the dictionary # use balance_response to capture the response ``` ### TransactionStatus api ```python @app.route("/transaction-status") def transaction_status(): data = {"initiator": "", "transaction_id": "", "party_a": "", "security_credential": "", "identifier_type": "", "remarks": "", "queue_timeout_url": "", "result_url": "", "occassion": "" } status = mpesa_api.TransactionStatus.check_transaction_status(**data) # use status to capture the response ``` ## Contributing Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate. ## License [MIT](https://github.com/allansifuna/Flask-Mpesa/blob/master/LICENSE)


نیازمندی

مقدار نام
- Flask


نحوه نصب


نصب پکیج whl Flask-Mpesa-1.2.8:

    pip install Flask-Mpesa-1.2.8.whl


نصب پکیج tar.gz Flask-Mpesa-1.2.8:

    pip install Flask-Mpesa-1.2.8.tar.gz