获得付费服务功能

getpaid.ups的Python项目详细描述


此套餐包含用于GetPaid的UPS。

更改

0.4(未发布)

0.3(2008-08-29)

  • 向项目根目录添加了构建文件和常规文本文档。

详细文档

获得已付UPS

此模块为getpaid和ups提供集成包 (www.ups.com)。

使用量

首先,我们需要创建一个ups额定值实用程序的实例并配置 它与我们的ups帐户信息。为了在这里运行单元测试 将ups_用户名、ups_密码、ups_访问密钥的值打包到 在shell/process环境中设置。

还要注意rates.py当前将fakeresponse()返回给这些请求。 要从服务器获得真正的响应,只需将该行(66)注释掉。

>>> from getpaid.ups import interfaces
>>> from getpaid.ups.rates import UPSRateService
>>> ups = UPSRateService()
>>> ups.username = UPS_USERNAME
>>> ups.password = UPS_PASSWORD
>>> ups.access_key = UPS_ACCESS_KEY
>>> ups.pickup_type = '01'

我们需要明确指定我们允许商店使用哪些ups服务。

>>> ups.services = interfaces.UPS_SERVICES.by_value.keys()

原点信息

我们还需要配置商店以设置 要源自的包。为了简洁起见,我们已经配置了存储 带有旧金山地址的测试设置中的设置。

创建发货订单

让我们创建一个订单,其中包含一些我们想发货的项目。

>>> from getpaid.core import order, item, cart
>>> myorder = order.Order()
>>> myorder.shopping_cart = mycart = cart.ShoppingCart()
>>> mycart
<getpaid.core.cart.ShoppingCart object at ...>
>>> line_item = item.ShippableLineItem()
>>> line_item.item_id = "sku-code-1"
>>> line_item.quantity = 2
>>> line_item.weight = 5.5
>>> mycart[ line_item.item_id ] = line_item

目的地信息

我们需要一些额外的信息才能成功订货 处理它,首先是一些联系信息:

>>> from getpaid.core import payment
>>> user_contact = payment.ContactInformation()
>>> user_contact.name = "John Smith"
>>> user_contact.email = "js@example.org"
>>> user_contact.phone_number = '7033291513'
>>> myorder.contact_information = user_contact

当然还有发货地点:

>>> ship_address = payment.ShippingAddress()
>>> ship_address.ship_same_billing = False
>>> ship_address.ship_first_line = '2702 Occidental Dr'
>>> ship_address.ship_city = 'Vienna'
>>> ship_address.ship_state = "VA"
>>> ship_address.ship_country = "US"
>>> ship_address.ship_postal_code = '22180'
>>> myorder.shipping_address = ship_address

获取运输选项

现在我们可以查询ups以了解各种服务、交付窗口和

UPS为中转提供的价格。

>>> results = ups.getRates( myorder )
>>> results.shipments.sort( lambda x,y:cmp(x.cost,y.cost) )
>>> methods = results.shipments
>>> len(methods)
6

价格会随着时间的推移而变化,为了测试的目的,我们分类比较 按成本(从低到高)划分的预期服务类型

>>> methods[0].service
u'UPS Ground'
>>> methods[1].service
u'UPS Three Day Select'
>>> methods[2].service
u'UPS 2nd Day Air'
>>> methods[3].service
u'UPS Next Day Air Saver'

故障模式

如果商店发货信息设置不正确,我们会得到一个类型 请求查看存储设置时出错。

>>> from zope.component import getUtility
>>> from getpaid.core.interfaces import IStoreSettings
>>> settings = getUtility( IStoreSettings )
>>> settings.contact_state = ""
>>> ups.getRates( myorder )
Traceback (most recent call last):
...
TypeError: Invalid Store Address Settings in Store Admin

TOdo:测试

结果对象上的可用状态

下载

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

推荐PyPI第三方库


热门话题
java无法在未设置数据源的情况下启动springboot应用程序   返回/泛型的类型?   java通过在navigationView中按id重新加载navigationView内容   java实现安卓的状态更新   java Equals()对于两个相等的字符串不返回true   java如何保存屏幕截图(matlab)   java GWT如何在重新加载页面之前确保函数已完全执行   java在Groovy中实现ObjectJSON映射的标准方法是什么?   java在ApacheTomcat中,是否可以通过连接器过滤多个访问日志文件?   java当JVM达到其Xmx限制时,它会强制垃圾收集吗?   如何在JAVA中生成包含特定数字的不同随机数列表?   rcp中透视图之间的java切换   java理解名为“分区”的Linkedlist算法中的无限循环   RestTemplate的java测微计统计信息   Android中使用自定义服务BLE的java读/写特性   java验证输入以确保负数   关于Java扫描器的io基本查询   java如何使用子字符串或其他函数将字符串拆分为单词?   java Storm群集重复元组