跳转到主要内容

获取UPS支付功能

项目描述

此包包含getpaid的ups。

变更

0.4(未发布)

0.3 (2008-08-29)

  • 添加了buildout文件和一般文本文档到项目根目录。

详细文档

getpaid ups

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

使用方法

首先,我们需要创建一个UPS评级工具的实例,并使用我们的UPS账户信息进行配置。为了运行此包中的单元测试,需要在shell/进程环境中设置UPS_USERNAME、UPS_PASSWORD、UPS_ACCESS_KEY的值。

请注意,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

待办事项:测试

状态信息在结果对象中可用

下载

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

getpaid.ups-0.3.tar.gz (915.2 kB 查看哈希值)

上传时间 源代码

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面