本文整理汇总了Python中models.Transaction.status方法的典型用法代码示例。如果您正苦于以下问题:Python Transaction.status方法的具体用法?Python Transaction.status怎么用?Python Transaction.status使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类models.Transaction
的用法示例。
在下文中一共展示了Transaction.status方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: make_payment
# 需要导入模块: from models import Transaction [as 别名]
# 或者: from models.Transaction import status [as 别名]
def make_payment(content_object, request, transaction_opts={}):
""""""
trans = Transaction(content_object=content_object)
trans.status = Transaction.PROCESSING
trans.save()
total = content_object.get_amount()
shipping = content_object.shipping_cost()
subtotal = (total - shipping)
post_data = {
'intent':'sale',
'redirect_urls':{
'return_url': build_url(request, trans.get_success_url()),
'cancel_url': build_url(request, trans.get_failure_url()),
},
'payer':{
'payment_method': 'paypal',
},
'transactions': [{
'amount': {
'total': "%.2f" % total,
'currency': content_object.currency,
'details': {
'subtotal': "%.2f" % subtotal,
'shipping': "%.2f" % shipping,
}
},
'description': str(content_object).encode('ascii', 'ignore'),
'item_list': {'items': []},
}]
}
if hasattr(content_object, 'get_lines'):
for line in content_object.get_lines():
post_data['transactions'][0]['item_list']['items'].append({
'name': '%s x %s' % (line[1], line[0]),
'quantity': 1,
'price': "%.2f" % line[2],
'currency': content_object.currency,
})
else:
post_data['transactions'][0]['item_list']['items'].append({
'quantity': 1,
'name': str(content_object).encode('ascii', 'ignore'),
'price': "%.2f" % subtotal,
'currency': content_object.currency,
})
url = PAYPAL_API + '/v1/payments/payment'
token = get_paypal_token()
# see https://developer.paypal.com/docs/integration/web/accept-paypal-payment/#specify-payment-information-to-create-a-payment
opener = urllib2.build_opener(BetterHTTPErrorProcessor)
urllib2.install_opener(opener)
encoded_data = json.dumps(post_data)
request = urllib2.Request(url, encoded_data,
headers={"Authorization": 'Bearer ' + token,
"Content-Type": 'application/json'})
try:
request = urllib2.Request(url, encoded_data,
headers={"Authorization": 'Bearer ' + token,
"Content-Type": 'application/json'})
result = urllib2.urlopen(request).read()
except urllib2.HTTPError, e:
raise Exception(e.read())
示例2: post
# 需要导入模块: from models import Transaction [as 别名]
# 或者: from models.Transaction import status [as 别名]
def post(self, mode =""):
# Nothing to do here, content script will pick up accesstoken from here
if mode == "ipn":
logging.info(self.request.body)
result = urlfetch.fetch(
ipn_sandbox_url,
payload = "cmd=_notify-validate&" + self.request.body,
method=urlfetch.POST,
validate_certificate=True
)
logging.info(result.content)
if result.status_code == 200 and result.content == 'VERIFIED': # OK
ipn_values = cgi.parse_qs(self.request.body)
debug_msg = '\n'.join(["%s=%s" % (k,'&'.join(v)) for (k,v) in ipn_values.items()])
#logging.info("from tung with love")
item_number = cgi.escape(self.request.get('item_number'))
# get stuff
transaction_id = str(cgi.escape(self.request.get('txn_id')))
payer_email = str(cgi.escape(self.request.get('payer_email')))
receiver_email = str(cgi.escape(self.request.get('receiver_email')))
item_amount = str(cgi.escape(self.request.get('payment_gross')))
sales_tax = str(cgi.escape(self.request.get('tax')))
shipping = str(cgi.escape(self.request.get('shipping')))
handling = str(cgi.escape(self.request.get('mc_fee')))
quantity = str(cgi.escape(self.request.get('quantity')))
item_name = str(cgi.escape(self.request.get('item_name')))
date = str(cgi.escape(self.request.get('payment_date')))
status = str(cgi.escape(self.request.get('payment_status')))
payment_type = str(cgi.escape(self.request.get('payment_type')))
### Change Request to done
post = RequestPost.query(RequestPost.reference == item_number).get() #that post
if post:
post.payment_is_done = True
## Notify tutee
notifymsg = NotifiedMessage()
notifymsg.read = False
notifymsg.person_reference = post.requester
notifymsg.object_reference = item_number
notifymsg.content = " paid " + item_amount + ", click to give feedback"
notifymsg.price = item_amount
notifymsg.initiator = post.requester
notifymsg.put()
#
## Notify tutor
notifymsg2 = NotifiedMessage()
notifymsg2.read = False
notifymsg2.person_reference = post.final_provider
notifymsg2.object_reference = item_number
notifymsg2.content = " paid " + item_amount + ", click to give feedback "
notifymsg2.price = item_amount
notifymsg2.initiator = post.requester
notifymsg2.put()
### Create Transaction Object
newtransaction = Transaction()
newtransaction.transaction_id = transaction_id
newtransaction.payer_email = payer_email
newtransaction.receiver_email = receiver_email
newtransaction.item_amount = item_amount
newtransaction.sales_tax = sales_tax
newtransaction.shipping = shipping
newtransaction.handling = handling
newtransaction.quantity = quantity
newtransaction.item_name = item_name
newtransaction.item_number = item_number
newtransaction.date = date
newtransaction.status = status
newtransaction.payment_type = payment_type
newtransaction.tutee_username = post.requester
newtransaction.tutor_username = post.final_provider
newtransaction.testPeoplewhocanseethis.append(post.requester)
newtransaction.testPeoplewhocanseethis.append(post.final_provider)
newtransaction.put()
post.put()
self.response.out.write(debug_msg)
else:
logging.error('Could not fetch %s (%i)' % (url, result.status_code,))
else:
logging.error("Unknown mode for POST request!")