PesaPal集成变得简单
py-pesapal的Python项目详细描述
佩萨帕尔
关于
py-pesapal是一个帮助Python开发人员轻松地将其应用程序与pesapal集成的包。在
安装
pip install py-pesapal
基本用途
有两种使用该软件包的方法,一种是专门针对烧瓶应用的。在
一般用法
^{pr2}$在烧瓶中使用
包的基本用法与上面强调的相同,主要区别在于创建一个新的PesapalFlask实例。在
fromflaskimportFlaskfrompy_pesapalimportPesapalFlaskapp=Flask(__name__)pesapal=PesapalFlask(app,config={"PESAPAL_CONSUMER_KEY":"12345","PESAPAL_CONSUMER_SECRET":"12345","PESAPAL_CALLBACK_URL":"https://example.com/callback-url"})
高级用途(烧瓶)
在烧瓶应用中使用PesapalLask使一些高级用法成为可能,如果使用Pesapal则不可能。在
目前,这种高级用法仅限于在Jinja2模板页面中呈现payment iframe。在
importuuidfromflaskimportFlask,render_templatefrompy_pesapalimportPesapalFlaskapp=Flask(__name__)pesapal=PesapalFlask(app,config={"PESAPAL_CONSUMER_KEY":"12345","PESAPAL_CONSUMER_SECRET":"12345","PESAPAL_CALLBACK_URL":"https://example.com/callback-url"})@app.route("/payment",methods=["GET])defreturn_payment_page():transaction_data={}line_items=[]transaction_total=[]x=1while(x<=5):items_dict={}items_dict["item_id"]=xitems_dict["item_name"]="Product {}".format(x)items_dict["item_count"]=1items_dict["unit_cost"]=10*xitems_dict["subtotal"]=1*10*xtransaction_total.append(1*10*x)line_items.append(items_dict)x+=1transaction_data["line_items"]=line_itemstransaction_data["amount"]=sum(transaction_total)transaction_data["description"]="Test transaction"transaction_data["reference"]=str(uuid.uuid4())transaction_data["email"]="mail@example.com"transaction_data["currency"]="KES"returnrender_template("payment.html",data=transaction_data)
<!-- payment.html --><!DOCTYPE html><html><head><title> Fancy Page Title </title></head><body> {{ render_iframe(data)|safe }} </body></html>
配置
创建新实例时,有许多配置选项,如下所示。在
佩萨帕尔
pesapal=Pesapal(consumer_key="12345",consumer_secret="12345",testing=True,# Optionalprettyprint_xml=True,# Optionalsave_xml_file=False,# Optionalxml_output_dir=None,# Optionalparam_validation=True# Optional)
consumer_key
(必选):PesaPal提供的消费者密钥值。在consumer_secret
(必选):PesaPal提供的消费者秘密值。在testing
(可选):默认值为True
。将基础PesaPal URL设置为https://demo.pesapal.comifTrue
或{a3}if{}。在 prettyprint_xml
(可选):默认值为True
。设置是否预打印生成的XML数据。在save_xml_file
(可选):默认值是False
。设置是否也应将生成的XML数据保存到光盘上的文件中。在xml_output_dir
(可选):默认值为None
。如果save_xml_file
设置为True
,则设置所需的输出目录。如果未设置此参数,则使用的默认目录是当前工作目录中的xml/
。在param_validation
(可选):默认值为True
。默认情况下,py pesapal需要其交易对象的电子邮件地址。这与PesaPal不同,后者要求提供电子邮件地址或电话号码之一。使用此参数可关闭py pesapal处理的验证,并默认为pesapal的本机字段验证。在
佩萨帕夫拉斯克
fromflaskimportFlaskfrompy_pesapalimportPesapalFlaskapp=Flask(__name__)pesapal=PesapalFlask(app,config={"PESAPAL_CONSUMER_KEY":"12345","PESAPAL_CONSUMER_SECRET":"12345","PESAPAL_TESTING":True,# Optional"PESAPAL_CALLBACK_URL":"https://example.com/callback-url","PESAPAL_PRETTYPRINT_XML":True,# Optional"PESAPAL_SAVE_XML":False,# Optional"PESAPAL_OUTPUT_DIR":None,# Optional"PESAPAL_PARAM_VALIDATION":True# Optional})
或者,配置值可以与应用程序实例相关联。在
fromflaskimportFlaskfrompy_pesapalimportPesapalFlaskapp=Flask(__name__)app.config["PESAPAL_CONSUMER_KEY"]="12345",app.config["PESAPAL_CONSUMER_SECRET"]="12345",app.config["PESAPAL_TESTING"]=True,# Optionalapp.config["PESAPAL_CALLBACK_URL"]="https://example.com/callback-url",app.config["PESAPAL_PRETTYPRINT_XML"]=True,# Optionalapp.config["PESAPAL_SAVE_XML"]=False,# Optionalapp.config["PESAPAL_OUTPUT_DIR"]=None,# Optionalapp.config["PESAPAL_PARAM_VALIDATION"]=True# Optionalpesapal=PesapalFlask(app)
实用工具
py-pesapal包公开了各种实用程序,如果开发人员希望对与pesapal集成的过程有更多的控制。在
frompy_pesapal.utilsimportgenerate_oauth_url# BUILD OAUTH1 URLurl=generate_oauth_url(consumer_key="12345",consumer_secret="12345",url="https://demo.pesapal.com",request_params={"oauth_callback":"https://example.com/callback-url"})
consumer_key
(必需):使用者的密钥值。在consumer_secret
(必需):消费者的机密值。在url
(必需):这是附加各种参数的基URL。在request_params
(必需):附加到基URL的参数。在
frompy_pesapal.utilsimportvalidate_params# VALIDATE PARAMSrequired_params={"email":True,"phone_number":True,"first_name":False}params_to_be_validated={"email":"mail@example.com","phone_number":"phone-number"}# Raises a KeyError if one or more params are missingvalidate_params(params=params_to_be_validated,required_params=required_params)
params
(必需):这是一个想要验证的参数字典。在required_params
(必选):这是一个字典,包含参数的名称和一个表示是否需要的布尔值。在
importuuidfrompy_pesapalimportgenerate_xmltransaction_data={}transaction_data["amount"]=120transaction_data["description"]="Test transaction"transaction_data["reference"]=str(uuid.uuid4())transaction_data["email"]="mail@example.com"transaction_data["currency"]="KES"# GENERATE XMLxml=generate_xml(transaction_data=transaction_data,prettyprint=True,generate_xml_file=False,xml_output_directory=None)
transaction_data
(必选):要过账的交易数据prettyprint
(可选):设置是否预打印生成的XML。在generate_xml_file
(可选):设置是否将XML数据保存到光盘上的文件中。在xml_output_directory
(可选):如果generate_xml_file
设置为True
,则设置XML文件的输出目录。默认目录是当前工作目录中的xml/
。在
许可证
- 项目
标签: