用于wirecard rest api的python包装器。
wirecard的Python项目详细描述
无线网卡
用于Wirecard REST API的python包装器。仅支持三维安全注册的信用卡支付。
下面的所有示例都使用有线卡测试数据。您可以在下面的链接中找到它们:
设置环境变量
exportWIRECARD_USERNAME='70000-APILUHN-CARD'exportWIRECARD_PASSWORD='8mhwavKVb91T'exportWIRECARD_MERCHANT_ACCOUNT_ID='33f6d473-3036-4ca5-acb5-8c64dac862d1'exportWIRECARD_API_URL='https://api-test.wirecard.com/engine/rest/payments'exportWIRECARD_ORIGIN_IP='127.0.0.1'
使用它
fromwirecardimportAccountHolder,Card,RequestedAmount,Wirecardcard=Card(account_number='4012000300001003',expiration_month='01',expiration_year='2023',security_code='003',_type='visa',)account_holder=AccountHolder(first_name='John',last_name='Doe',)requested_amount=RequestedAmount(amount='10.99',currency='ZAR',)w=Wirecard()result=w.check_3d_enrollment(card,account_holder,requested_amount)# If everything is fine, you should redirect the user to the ACS page# https://document-center.wirecard.com/display/PTD/Payment+Features#PaymentFeatures-ACSHTTPSRedirect# Here's a Django View Exampletransaction_id=result.get('payment').get('transaction-id')acs_url=result.get('payment').get('three-d').get('acs-url')pareq=result.get('payment').get('three-d').get('pareq')context={'acs_url':acs_url,'pareq':pareq,'term_url':'https://your_callback_url','md':f'{"transaction_id": {transaction_id}, "cvv": {card.security_code}}',}returnrender(request,'acs_template.html',context,)# The bank successfully calls your callback# Here's a Django View Examplepares=request.POST.get('PaRes')md=json.loads(request.POST.get('MD','null'))parent_transaction_id=md['transaction_id']cvv=md['cvv']w=Wirecard()result=w.authorize_and_capture_payment(pares,parent_transaction_id,cvv)
您可以使用必要的信息来初始化Wirecard
,而不是使用环境变量:
w=Wirecard(username='70000-APILUHN-CARD',password='8mhwavKVb91T',merchant_account_id='33f6d473-3036-4ca5-acb5-8c64dac862d1',url='https://api-test.wirecard.com/engine/rest/payments',)
例外情况
WirecardFailedInit
:当初始化Wirecard
失败时引发WirecardInvalidCard
:当给Card
无效卡时引发WirecardInvalidRequestedAmount
:向RequestedAmount
提供无效卡时引发WirecardFailedTransaction
:与无线网卡平台的任何通信失败时引发WirecardInvalidResponse
:当wirecard无法返回json时引发
测试
安装poetry。
$ poetry install $ poetry run pytest
许可证
MIT。