与Bluesnap API交互的Python3模块。

bluesnap的Python项目详细描述


蓝色睡眠

PyPI versionPyPI pyversionsBuild Status

A Python 3 module to interact with the Bluesnap API.

Mayple中开发。

安装

pip install bluesnap

示例

importloggingimportmathimportrandomimportbluesnapfrombluesnap.resourcesimportPaymentFieldsTokenResource,VaultedShopperResource,TransactionResource, \
    TransactionMetadata,VaultedShopperInfo,ShippingContactInfo,TransactionFraudInfo,BillingContactInfo,Level3Data, \
    Level3DataItemlogging.basicConfig()client= \
    bluesnap.client.configure(# Or use "live"env="sandbox",# Get credentials from BlueSnapusername="...",password="...",# Default store Iddefault_store_id="...",# Seller idseller_id='...',# Default currencydefault_currency="usd",# Localelocale='en',# Loggerlogger=logging.root)print(client.endpoint_url)print(bluesnap.client.default_user_agent())print(client.currency)print(client.store_id)paymentFieldsTokenResource=PaymentFieldsTokenResource()vaultedShopperResource=VaultedShopperResource()transactionResource=TransactionResource()# Create a token# --------------tokenId=paymentFieldsTokenResource.create()print(tokenId)# Use it in your frontend: https://developers.bluesnap.com/docs/build-a-forminput('Press enter to continue...')# Create vaulted shopper# ----------------------billingContactInfo=BillingContactInfo(firstName="Credit Card",lastName="Owner",personalIdentificationNumber="1234123123",address1="5 Somewhere",city="Tel Aviv",country="il",zip="123456")shippingContactInfo=ShippingContactInfo(firstName="Package",lastName="Receiver",address1="18 Otherplace",city="Ramat Gan",country="il",zip="123123")transactionFraudInfo=TransactionFraudInfo(# Have a look here: https://developers.bluesnap.com/docs/fraud-prevention#section-device-data-checksfraudSessionId="12345678123456781234567812345678",shippingContactInfo=shippingContactInfo,)vaultedShopperInfo=VaultedShopperInfo(firstName="Customer Name",lastName="for Invoicing",companyName="Company LTD",personalIdentificationNumber="123123123",shopperCurrency="USD",softDescriptor="AppearInCreditCard",descriptorPhoneNumber="+972-1231-123123",merchantShopperId="12345",address="More Place 4",city="Givatayim",country="IL",zip="123123",email="customer@email.com",phone="+972-123123123",shippingContactInfo=shippingContactInfo,transactionFraudInfo=transactionFraudInfo,)vaultedShopper=vaultedShopperResource.createFromPaymentFieldsToken(vaultedShopperInfo=vaultedShopperInfo,paymentFieldsTokenId=tokenId,billingContactInfo=billingContactInfo)print(vaultedShopper)vaultedShopperId=vaultedShopper['vaultedShopperId']# Retrieve again, if you wantexistingVaultedShopper=vaultedShopperResource.retrieve('22823473')print(existingVaultedShopper)# Validate credit card set to shopper# -----------------------------------# Validate the vaulted shoppervalidatingTransaction=transactionResource.auth(vaultedShopperId=vaultedShopperId,amount='0',currency='USD',)print(validatingTransaction)vaultedShopperIsValid=validatingTransaction['processingInfo']['processingStatus']=='success'print("vaultedShopperIsValid:",vaultedShopperIsValid)# Create a transaction# --------------------amount=random.randint(100,10000)shippingRate=0.08stateTaxRate=0.17shippingAmount=math.ceil(float(amount)*shippingRate)stateTaxAmount=math.ceil(float(amount)*stateTaxRate)total=amount+shippingAmount+stateTaxAmountamount=float(amount)/100.0shippingAmount=float(shippingAmount)/100.0stateTaxAmount=float(stateTaxAmount)/100.0total=float(total)/100.0level3Data=Level3Data(customerReferenceNumber="12345234234",salesTaxAmount=str(stateTaxRate),freightAmount=str(shippingAmount),dutyAmount="0",level3DataItems=[Level3DataItem(description="Item description",lineItemTotal=str(amount),commodityCode="96345345",grossNetIndicator="N",productCode="123123123123",itemQuantity="1",unitCost="1",unitOfMeasure="USD")])newTransaction=transactionResource.authCapture(vaultedShopperId=22823473,amount=total,currency='USD',level3Data=level3Data,transactionMetadataObjectList=[TransactionMetadata(value=f'{amount}',key='amount',description='Amount'),TransactionMetadata(value=f'{shippingAmount}',key='shippingAmount',description='Shipping Amount'),TransactionMetadata(value=f'{stateTaxAmount}',key='stateTaxAmount',description='State Tax Amount')])print(newTransaction)# Retrieve a transactionnewlyCreatedTransaction=transactionResource.retrieve(newTransaction['transactionId'])print(newlyCreatedTransaction)# Is it valid?newlyCreatedTransactionIsValid=(newlyCreatedTransactionTransaction['processing-info']['processing-status']=='SUCCESS')print(newlyCreatedTransactionIsValid)

相关项目

您也可能对这些项目感兴趣:

  • python-bluesnap:这个项目是从它派生出来的,但是添加了python 3支持,并包含了对标准json api资源的新支持。

贡献

拉请求和星星总是受欢迎的。对于错误和功能请求,please create an issue

安装时使用:

$ virtualenv .venv -p python3
$ . .venv/bin/activate
(.venv) $ pip install -r requirements.txt

并使用以下命令运行测试:

(.venv) $ pip install -r tests/requirements.txt
(.venv) $ nosetests tests/

作者

alon diamant(高级512)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java创建猜谜游戏程序   JavaWebSocketContainer。connectToServer似乎挂起了   如何在java中中断函数   java c#socket client multiple BeginSend()未到达服务器   不可见的组件然后在Java中的窗格之间切换   java在应用程序类中使用静态接口安全吗?   java等待函数完成,直到回调到来   使用DataOutputStream时的java新行,Android   java服务对象的定义是什么?   基于视图的javahibernate复合密钥   java将varchar连接到char在JPA(oracle)中不起作用   如何在java中通过point类读取多个点?