本文整理汇总了Python中r2.models.bidding.CustomerID类的典型用法代码示例。如果您正苦于以下问题:Python CustomerID类的具体用法?Python CustomerID怎么用?Python CustomerID使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CustomerID类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: process_response
def process_response(self, res):
from r2.models import Account
fullname = res.merchantcustomerid.contents[0]
name = res.description.contents[0]
customer_id = int(res.customerprofileid.contents[0])
acct = Account._by_name(name)
# make sure we are updating the correct account!
if acct.name == name:
CustomerID.set(acct, customer_id)
else:
raise AuthorizeNetException, "account name doesn't match authorize.net account"
# parse the ship-to list, and make sure the Account is up todate
ship_to = []
for profile in res.findAll("shiptolist"):
a = Address.fromXML(profile)
ShippingAddress.add(acct, a.customerAddressId)
ship_to.append(a)
# parse the payment profiles, and ditto
profiles = []
for profile in res.findAll("paymentprofiles"):
a = Address.fromXML(profile)
cc = CreditCard.fromXML(profile.payment)
payprof = PaymentProfile(a, cc, int(a.customerPaymentProfileId))
PayID.add(acct, a.customerPaymentProfileId)
profiles.append(payprof)
return acct, Profile(acct, profiles, ship_to)
开发者ID:eerock,项目名称:reddit,代码行数:31,代码来源:api.py
示例2: process_error
def process_error(self, res):
if self.is_error_code(res, Errors.DUPLICATE_RECORD):
# D'oh. We lost one
m = self.re_lost_id.match(res.find("text").contents[0]).groups()
CustomerID.set(self._user, m[0])
# otherwise, we might have sent a user that already had a customer ID
cust_id = CustomerID.get_id(self._user)
if cust_id:
return cust_id
return AuthorizeNetRequest.process_error(self, res)
开发者ID:eerock,项目名称:reddit,代码行数:10,代码来源:api.py
示例3: get_or_create_customer_profile
def get_or_create_customer_profile(user):
profile_id = CustomerID.get_id(user._id)
if not profile_id:
profile_id = api.create_customer_profile(merchant_customer_id=user._fullname, description=user.name)
CustomerID.set(user, profile_id)
profile = api.get_customer_profile(profile_id)
if not profile or profile.merchantCustomerId != user._fullname:
raise ValueError("error getting customer profile")
for payment_profile in profile.paymentProfiles:
PayID.add(user, payment_profile.customerPaymentProfileId)
return profile
开发者ID:zeantsoi,项目名称:reddit,代码行数:15,代码来源:interaction.py
示例4: add_payment_method
def add_payment_method(user, address, credit_card, validate=False):
profile_id = CustomerID.get_id(user._id)
payment_method_id = api.create_payment_profile(profile_id, address, credit_card, validate)
if payment_method_id:
PayID.add(user, payment_method_id)
return payment_method_id
开发者ID:zeantsoi,项目名称:reddit,代码行数:7,代码来源:interaction.py
示例5: charge_transaction
def charge_transaction(user, campaign_id, link_id, transaction_id, references):
bid = Bid.one(transaction=transaction_id, campaign=campaign_id)
if bid.is_charged():
return True, None
if transaction_id < 0:
bid.charged()
return True, None
references["pay_id"] = bid.pay_id
profile_id = CustomerID.get_id(user._id)
try:
authorize_response = api.capture_authorization_hold(
customer_id=profile_id, payment_profile_id=bid.pay_id, amount=bid.bid, transaction_id=transaction_id
)
AuthorizeTransaction._new(authorize_response, **references)
except api.AuthorizationHoldNotFound:
# authorization hold has expired
bid.void()
return False, api.TRANSACTION_NOT_FOUND
except api.TransactionError as e:
authorize_response = e.authorize_response
AuthorizeTransaction._new(authorize_response, **references)
return False, e.message
bid.charged()
return True, None
开发者ID:zeantsoi,项目名称:reddit,代码行数:28,代码来源:interaction.py
示例6: auth_transaction
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
开发者ID:zeantsoi,项目名称:reddit,代码行数:27,代码来源:interaction.py
示例7: _make_transaction
def _make_transaction(trans_cls, amount, user, pay_id,
order=None, trans_id=None, test=None):
"""
private function for handling transactions (since the data is
effectively the same regardless of trans_cls)
"""
# format the amount
if amount:
amount = "%.2f" % amount
# lookup customer ID
cust_id = CustomerID.get_id(user)
# create a new transaction
trans = trans_cls(amount, cust_id, pay_id, trans_id=trans_id,
order=order)
extra = {}
# the optional test field makes the transaction a test, and will
# make the response be the error code corresponding to int(test).
if isinstance(test, int):
extra = dict(x_test_request="TRUE",
x_card_num=test_card.ERRORCARD.cardNumber,
x_amount=test)
# using the transaction, generate a transaction request and make it
req = CreateCustomerProfileTransactionRequest(transaction=trans,
extraOptions=extra)
return req.make_request()
开发者ID:dredmorbius,项目名称:reddit,代码行数:26,代码来源:interaction.py
示例8: charge_transaction
def charge_transaction(user, transaction_id, campaign_id):
bid = Bid.one(transaction=transaction_id, campaign=campaign_id)
if bid.is_charged():
return True, None
if transaction_id < 0:
bid.charged()
return True, None
profile_id = CustomerID.get_id(user._id)
try:
api.capture_authorization_hold(
customer_id=profile_id,
payment_profile_id=bid.pay_id,
amount=bid.bid,
transaction_id=transaction_id,
)
except api.AuthorizationHoldNotFound:
# authorization hold has expired
bid.void()
return False, api.TRANSACTION_NOT_FOUND
except api.TransactionError as e:
return False, e.message
bid.charged()
return True, None
开发者ID:AHAMED750,项目名称:reddit,代码行数:27,代码来源:interaction.py
示例9: auth_transaction
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
开发者ID:AHAMED750,项目名称:reddit,代码行数:25,代码来源:interaction.py
示例10: __init__
def __init__(self, user, paymentProfiles, address,
validationMode = None):
SimpleXMLObject.__init__(self, merchantCustomerId = user._fullname,
description = user.name, email = "",
paymentProfiles = paymentProfiles,
shipToList = address,
validationMode = validationMode,
customerProfileId=CustomerID.get_id(user))
开发者ID:ArslanRafique,项目名称:reddit,代码行数:8,代码来源:api.py
示例11: __init__
def __init__(self, user, **kw):
if isinstance(user, int):
cust_id = user
self._user = None
else:
cust_id = CustomerID.get_id(user)
self._user = user
AuthorizeNetRequest.__init__(self, customerProfileId=cust_id, **kw)
开发者ID:eerock,项目名称:reddit,代码行数:8,代码来源:api.py
示例12: get_account_info
def get_account_info(user, recursed=False):
# if we don't have an ID for the user, try to make one
if not CustomerID.get_id(user):
cust_id = CreateCustomerProfileRequest(user).make_request()
# if we do have a customerid, we should be able to fetch it from authorize
try:
u, data = GetCustomerProfileRequest(user).make_request()
except AuthorizeNetException:
u = None
# if the user and the returned user don't match, delete the
# current customer_id and recurse
if u != user:
if not recursed:
CustomerID.delete(user)
return get_account_info(user, True)
else:
raise AuthorizeNetException, "error creating user"
return data
开发者ID:dredmorbius,项目名称:reddit,代码行数:20,代码来源:interaction.py
示例13: process_error
def process_error(self, res):
if self.is_error_code(res, Errors.DUPLICATE_RECORD):
# authorize.net has a record for this customer but we don't. get
# the correct id from the error message and update our db
matches = self.re_lost_id.match(res.find("text").contents[0])
if matches:
match_groups = matches.groups()
CustomerID.set(self._user, match_groups[0])
g.log.debug("Updated missing authorize.net id for user %s" % self._user._id)
else:
# could happen if the format of the error message changes.
msg = ("Failed to fix duplicate authorize.net profile id. "
"re_lost_id regexp may need to be updated. Response: %r"
% res)
raise AuthorizeNetException(msg)
# otherwise, we might have sent a user that already had a customer ID
cust_id = CustomerID.get_id(self._user)
if cust_id:
return cust_id
return AuthorizeNetRequest.process_error(self, res)
开发者ID:ArslanRafique,项目名称:reddit,代码行数:20,代码来源:api.py
示例14: void_transaction
def void_transaction(user, transaction_id, campaign_id):
bid = Bid.one(transaction=transaction_id, campaign=campaign_id)
if transaction_id <= 0:
bid.void()
return True, None
profile_id = CustomerID.get_id(user._id)
try:
api.void_authorization_hold(profile_id, bid.pay_id, transaction_id)
except api.TransactionError as e:
return False, e.message
bid.void()
return True, None
开发者ID:AHAMED750,项目名称:reddit,代码行数:15,代码来源:interaction.py
示例15: refund_transaction
def refund_transaction(user, transaction_id, campaign_id, amount):
bid = Bid.one(transaction=transaction_id, campaign=campaign_id)
if transaction_id < 0:
bid.refund(amount)
return True, None
profile_id = CustomerID.get_id(user._id)
try:
api.refund_transaction(
customer_id=profile_id,
payment_profile_id=bid.pay_id,
amount=amount,
transaction_id=transaction_id,
)
except api.TransactionError as e:
return False, e.message
bid.refund(amount)
return True, None
开发者ID:AHAMED750,项目名称:reddit,代码行数:19,代码来源:interaction.py
示例16: void_transaction
def void_transaction(user, campaign_id, link_id, transaction_id, references):
bid = Bid.one(transaction=transaction_id, campaign=campaign_id)
if transaction_id <= 0:
bid.void()
return True, None
references["pay_id"] = bid.pay_id
profile_id = CustomerID.get_id(user._id)
try:
authorize_response = api.void_authorization_hold(profile_id, bid.pay_id, transaction_id)
AuthorizeTransaction._new(authorize_response, **references)
except api.TransactionError as e:
authorize_response = e.authorize_response
AuthorizeTransaction._new(authorize_response, **references)
return False, e.message
bid.void()
return True, None
开发者ID:zeantsoi,项目名称:reddit,代码行数:20,代码来源:interaction.py
示例17: refund_transaction
def refund_transaction(user, campaign_id, link_id, amount, transaction_id, references):
bid = Bid.one(transaction=transaction_id, campaign=campaign_id)
if transaction_id < 0:
bid.refund(amount)
return True, None
references["pay_id"] = bid.pay_id
profile_id = CustomerID.get_id(user._id)
try:
authorize_response = api.refund_transaction(
customer_id=profile_id, payment_profile_id=bid.pay_id, amount=amount, transaction_id=transaction_id
)
AuthorizeTransaction._new(authorize_response, **references)
except api.TransactionError as e:
authorize_response = e.authorize_response
AuthorizeTransaction._new(authorize_response, **references)
return False, e.message
bid.refund(amount)
return True, None
开发者ID:zeantsoi,项目名称:reddit,代码行数:21,代码来源:interaction.py
示例18: delete_payment_method
def delete_payment_method(user, payment_method_id):
profile_id = CustomerID.get_id(user._id)
success = api.delete_payment_profile(profile_id, payment_method_id)
if success:
PayID.delete(user, payment_method_id)
开发者ID:zeantsoi,项目名称:reddit,代码行数:5,代码来源:interaction.py
示例19: make_request
def make_request(self):
# don't send a new request if the user already has an id
return CustomerID.get_id(self._user) or AuthorizeNetRequest.make_request(self)
开发者ID:eerock,项目名称:reddit,代码行数:3,代码来源:api.py
示例20: update_payment_method
def update_payment_method(user, payment_method_id, address, credit_card, validate=False):
profile_id = CustomerID.get_id(user._id)
payment_method_id = api.update_payment_profile(profile_id, payment_method_id, address, credit_card, validate)
return payment_method_id
开发者ID:zeantsoi,项目名称:reddit,代码行数:4,代码来源:interaction.py
注:本文中的r2.models.bidding.CustomerID类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论