本文整理汇总了Python中r2.models.bidding.PayID.get_ids方法的典型用法代码示例。如果您正苦于以下问题:Python PayID.get_ids方法的具体用法?Python PayID.get_ids怎么用?Python PayID.get_ids使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类r2.models.bidding.PayID
的用法示例。
在下文中一共展示了PayID.get_ids方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: auth_transaction
# 需要导入模块: from r2.models.bidding import PayID [as 别名]
# 或者: from r2.models.bidding.PayID import get_ids [as 别名]
def auth_transaction(user, campaign_id, link_id, amount, payment_method_id, references):
if payment_method_id not in PayID.get_ids(user._id):
return None, "invalid payment method"
profile_id = CustomerID.get_id(user._id)
invoice = "T%dC%d" % (link_id, campaign_id)
references["pay_id"] = payment_method_id
try:
authorize_response = api.create_authorization_hold(profile_id, payment_method_id, amount, invoice, request.ip)
AuthorizeTransaction._new(authorize_response, **references)
except api.DuplicateTransactionError as e:
transaction_id = e.transaction_id
try:
bid = Bid.one(transaction_id, campaign=campaign_id)
except NotFound:
bid = Bid._new(transaction_id, user, payment_method_id, link_id, amount, campaign_id)
g.log.error("%s on campaign %d" % (e.message, campaign_id))
return transaction_id, None
except api.TransactionError as e:
authorize_response = e.authorize_response
AuthorizeTransaction._new(authorize_response, **references)
return None, e.message
bid = Bid._new(authorize_response.trans_id, user, payment_method_id, link_id, amount, campaign_id)
return authorize_response.trans_id, None
示例2: auth_transaction
# 需要导入模块: from r2.models.bidding import PayID [as 别名]
# 或者: from r2.models.bidding.PayID import get_ids [as 别名]
def auth_transaction(amount, user, payment_method_id, link, campaign_id):
if payment_method_id not in PayID.get_ids(user._id):
return None, "invalid payment method"
profile_id = CustomerID.get_id(user._id)
invoice = "T%dC%d" % (link._id, campaign_id)
try:
transaction_id = api.create_authorization_hold(
profile_id, payment_method_id, amount, invoice, request.ip)
except api.DuplicateTransactionError as e:
transaction_id = e.transaction_id
try:
bid = Bid.one(transaction_id, campaign=campaign_id)
except NotFound:
bid = Bid._new(transaction_id, user, payment_method_id, link._id,
amount, campaign_id)
g.log.error("%s on campaign %d" % (e.message, campaign_id))
return transaction_id, None
except api.TransactionError as e:
return None, e.message
bid = Bid._new(transaction_id, user, payment_method_id, link._id, amount,
campaign_id)
return transaction_id, None
示例3: auth_transaction
# 需要导入模块: from r2.models.bidding import PayID [as 别名]
# 或者: from r2.models.bidding.PayID import get_ids [as 别名]
def auth_transaction(amount, user, payid, thing, campaign, test=None):
# use negative pay_ids to identify freebies, coupons, or anything
# that doesn't require a CC.
if payid < 0:
trans_id = -thing._id
# update previous freebie transactions if we can
try:
bid = Bid.one(thing_id=thing._id,
transaction=trans_id,
campaign=campaign)
bid.bid = amount
bid.auth()
except NotFound:
bid = Bid._new(trans_id, user, payid, thing._id, amount, campaign)
return bid.transaction, ""
elif int(payid) in PayID.get_ids(user):
order = Order(invoiceNumber="T%dC%d" % (thing._id, campaign))
success, res = _make_transaction(ProfileTransAuthOnly,
amount, user, payid,
order=order, test=test)
if success:
if test:
return auth_transaction(amount, user, -1, thing, campaign,
test = test)
else:
Bid._new(res.trans_id, user, payid, thing._id, amount, campaign)
return res.trans_id, ""
elif res is None:
# we are in test mode!
return auth_transaction(amount, user, -1, thing, test=test)
# duplicate transaction, which is bad, but not horrible. Log
# the transaction id, creating a new bid if necessary.
elif res.trans_id and (res.response_code, res.response_reason_code) == (3,11):
g.log.error("Authorize.net duplicate trans %d on campaign %d" %
(res.trans_id, campaign))
try:
Bid.one(res.trans_id, campaign=campaign)
except NotFound:
Bid._new(res.trans_id, user, payid, thing._id, amount, campaign)
return res.trans_id, res.response_reason_text