getpaid authorize.net支付处理器功能

getpaid.authorizedotnet的Python项目详细描述


此软件包为GetPaid框架提供AuthorizedDotNet支付处理器功能。



==
更改
=



<0.6.8(2015-11-28)
----


-更新事务URL以通过Akamai连接。
[fulv]


0.6.7(2015-05-29)
---------

-更新根CA证书以成功验证截至2015-05-27的
authorize.net使用的新证书。
[davisagli]


0.6.6(2013-12-02)
---------

-将full authorize.net响应存储为字符串,而不是字符串而不是一个HttpResponse对象。发布。

0.6.3(2012-07-18)
----


-中断发布。


0.6.2(2012-06-19)
----


-如果authorize.net拥有审查授权,返回一个指示异步支付处理的响应
[davisagli]


0.6.1(2011-06-21)
----


-修复zope 2.10中的正确getsite。
[davisagli]


0.6.0(2011-06-15)
----

-记录从在
订单上的批注上授权.net,以便进行调试。
[davisagli]

-add选项可在使用已知的
测试信用卡号码之一时启用设置X U TEST U REQUEST标志。这使得即使处理器正在使用生产服务器,也可以测试
集成。
[davisagli]


-patch zc.authorizedotnet以确保检查了正确的根证书

[davisagli]


0.5.1(2011-05-18)
----


-将信用卡CVC代码发送到authorize.net。
[davisagli]

-提供验证API.authorize.net使用的SSL证书所需的附加根证书



0.5.0(2010-05-18)
---------

-增加了对授权.NET的自动定期计费(API)的支持,用于管理基于订阅的支付。
[davisagli]


-增加了测试。
[davisagli]

<0.4.0(2010-04-07)
----

-使用zope.annotation而不是zope.app.annotation
[davisagli]

<0.3.3(2009-08-19)
----
-记录authorize.net返回的事务ID


<0.3.2(2009-07-22)
----
-将过期日期作为字符串处理。

<0.3.1(2009-03-13)在setup.py dependencies[lucielejard]


0.3(2008-08-29)中添加m2crypto
-------
-在项目根目录中添加构建文件和常规文本文档。
-删除setup.cfg


0.2(2008-08-21)
-------
-蛋化包

详细文档
********************


getpaid authorize.net支付处理器
==

authorizenetadapter是getpaid支付处理器的实现,它可以通过授权.NET API。

test setup
——


要使用authorizeNetAdapter,我们首先需要一个上下文,该上下文可以适应IAuthorizeNetOptions,以获取访问authorize.NET API的密钥。(登录名和密钥在tests.py中根据环境变量初始化。
使用登录授权.net)


>;>;来自zope。接口导入实现
>;>;来自getpaid.authorizedotnet。接口导入iauthorizenetoptions
>;>;DummyAuthContext类(对象):
…工具(iauthorizenetoptions)
…服务器URL='测试'
…商户号=登录
…商户密钥=密钥

编辑我们要处理付款的订单。

>;>;从getpaid.core导入订单、项目、购物车、选项、接口、付款
>;>;我的购物车=购物车.shoppingcart()
>;>;我的购物车['abc']=abc=项目.lineitem()
>;>;abc.cost=22.20;abc.name='abc';abc.quantity=3
>;>;order=order.order()
>;>;order.setorderid('test%s%int(time.time()))
>;>;order.shopping\u cart=my\cart
>;order.contact_information=contact=payment.contactinformation()
>;>contact.name='harvey frank'
>;>contact.phone_number='2062681235'
>;>contact.email='harvey@example.com'
>;>order.billing address=billing=payment.billingaddress()
>;>billing.bill\u first\u line='1402 3rd ave.'
>;>billing.bill\u city='Seattle'
>;>billing.bill\u state='WA'
>;>billinginfo=options.propertyBag.makeClass(interfaces.iuserPaymentInformation)
付款=账单信息(
…名片上的姓名='Harvey Frank',
…比尔电话号码='2062861235',
…信用卡类型=VISA,
…信用卡=4007000000027,
…cc_expiration=datetime.now()+时间增量(365),
…cc_cvc='111',
…)

授权订单
----


授权确认可以使用给定的帐单信息处理订单。


>;>;来自getpaid.authorizedotnet.authorizenet import authorizenetadapter
>;>;authNet=authorizeNetAdapter(dummyauthContext())
>;>;authNet.authorize(order,payment)==interfaces.keys.results\success
true


捕获/收取订单费用
----

(实际
结算发生在每天的批处理过程中。)

>;>authNet.capture(order,order.getTotalPrice())==interfaces.keys.results\success
true



对于客户。

只有在原始付款被捕获并结算后才能发出退款,
因此我们不希望测试成功。

>;>;authNet.refund(订单,order.getTotalPrice())
"引用的交易不符合发出信用证的条件。"


项已授权,它将使用authorize.net的自动定期计费(arb)api创建基于订阅的付款。subscriptionID将作为其事务ID记录在订单上。


请注意,创建订阅是在调用
`` authorize``而不是`` capture``的过程中进行的,因为它需要访问传递给``authorize``而不是``capture``的账单信息。


>;>import copy
>;>from zope.annotation.interfaces import iannotations
>;>order2=copy.deepcopy(order)
>;>cart2=cart.shoppingcart()
>;>;cart2['abc']=abc=item.recurringlineitem()
>;>;abc.cost=22.20;abc.name='abc';abc.quantity=1
>;>;abc.interval=1;abc.total\u occurrencess=3;abc.unit='months'
>;>;order2.shopping_cart=cart2
>;>order2._order_id='重复%s%int(time.time())
>;>authNet.authorize(order2,payment)=interfaces.keys.results_success
true
>;>;subscriptionid=iannotations(order2)[interfaces.keys.processor_txn_id]
>;>;subscriptionid不是none
true

但是仍然需要成功,因为订单工作流将调用它。

>;>;authNet.capture(order2,order2.getTotalPrice())==interfaces.keys.results\success
true

当前不支持经常性和
非经常性行项目的混合使用。

将首先使用标准AIM API对经常性订单进行授权,
以确保提供了有效的抄送信息。

>;payment2=copy.deepcopy(payment)
>;>;payment2.信用卡='1111111111'
>;>>authNet.authorize(order2,payment2)
'信用卡号无效。'


取消定期付款订阅
如果订单具有订阅ID,其订阅可以取消。

>;>;authnet.cancel_subscription(order2)=interfaces.keys.results_success
true


authorize.net arb integration
=authorize.net arb integration

=authorize.net的自动循环计费(arb)api由arb处理器提供支持,这使得可以通过XML API管理基于订阅的
支付。


有关API文档的信息,请参见http://www.authorize.net/support/arb_guide.pdf
包括使用arb的先决条件,以及可以指定哪些参数的详细信息。


此密钥从商户界面获取。导入arbprocessor类后,必须将登录名和事务传递给getpaid.authorizedotnet.subscription import arbprocessor

>;>arb=arbprocessor(server=server_name,login=login,key=key)

exp_date=strftime("%y-%m",gmtime())
>;>import random
>;>amount='%.2f'%random.uniform(0100)

>;>result=arb.create(refid='1234',
…订阅={
…'姓名':'1234',
…'付款计划":{
…"间隔":{
…"长度:1,
…单位:'月',},
…'开始日期:今天,
…总发生次数:12,
…三元:0,},
…'金额:金额,
…Trialamount':'0',
…'付款":{
…"信用卡":{
…"卡号':'4007000000027',
…'到期日期:到期日期,
…卡片代码':'111',},
…},
…比尔托":{
…"名字':'哈维',
…'姓氏':'frank',},
…},
…)

返回包含事务详细信息的字典。

>;>;result['refid']
'1234'
>;>result['messages']['result code']
'ok'
>;>result['messages']['message'['code']
'123456'
>;>result['messages']['text']
'成功。
>;subscriptionid=result['subscriptionid']
>;>>subscriptionid
'123456'


更新订阅
-


若要更新现有订阅,请使用"update"方法。它接受
与"create"相同的参数,但除了
subscriptionid之外,所有参数都是可选的。

>;>;result=arb.update(subscriptionid=subscriptionid,
…订阅={
…'付款计划":{
…"总次数:6,},
…},
…)
>;>result['messages']['result code']
'ok'


尝试更新不存在的订阅结果时出现错误代码。

>;>result=arb.update(subscriptionid='1',
…订阅={
…'付款计划":{
…"总次数:6,},
…},
…)
>;>result['messages']['resultcode']
'error'
>;>result['messages']['message'['text']
'找不到订阅。

使用"取消"方法。

>;>;result=arb.cancel(subscriptionid=subscriptionid)
>;>;result['messages']['result code']
'ok'


尝试取消不存在的订阅将导致错误代码。

>;result=arb.cancel(subscriptionid='1')
>;>result['messages']['resultcode']
'error'
>;>result['messages']['message'['text']
'找不到订阅。'

欢迎加入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群集重复元组