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']
'找不到订阅。'
==
更改
=
<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']
'找不到订阅。'