获取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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3457afff0225544ea114e0e9a2ae06f514dd81425c82e86534fa50997340fa51 |
|
MD5 | 6f3af67cb073ce89debe7d47915b4f40 |
|
BLAKE2b-256 | 0c6e0c4df7f8d7f8fec552dc28e1e20a8937906671852aacd4b29cf5a455cddb |