【发布时间】:2019-09-01 00:31:29
【问题描述】:
我正在使用条带 webhook 来更新我的数据库。在 webhook 中,金额以最小货币返回,例如。 1000 美元 10.00 美元。
我想以 $10.00 的形式存入数据库,但找不到方法。
# Retrieve the request's body and parse it as JSON:
event_json = json.loads(request.data)
event = stripe.Event.retrieve(event_json['id'], stripe_account=(event_json["account"]))
#event = event_json.json().get('id')
# Do something with event_json
if event.type == 'charge.succeeded':
date = event.created
donor = event.data.object.customer
amount = event.data.object.amount
payment_date=datetime.datetime.fromtimestamp(date).strftime('%m-%d-%Y')
# donor_ID to query db
donor_paid = db1.Donor.query.filter_by(donor_ID=donor).first()
# update db
donor_paid.donation_date=payment_date
donor_paid.donation_amount=amount
db.session.commit()
这是模型:
class Donor(db.Model):
__tablename__="donor"
donor_ID=db.Column(db.String, primary_key=True)
rep_ID=db.Column(db.String, db.ForeignKey('rep.rep_ID'))
office_ID=db.Column(db.String)
donor_name=db.Column(db.String)
donor_email=db.Column(db.String)
donor_phone=db.Column(db.String)
donor_address=db.Column(db.String)
donation_amount=db.Column(db.String)
donation_date=db.Column(db.DateTime)
monthly_start_date=db.Column(db.DateTime)
monthly_stop_date=db.Column(db.DateTime)
donor_status=db.Column(db.Boolean)
def __init__(self,donor_ID,rep_ID,office_ID,donor_name,donor_email,donor_phone,donor_address,donation_amount,donation_date,monthly_start_date,monthly_stop_date,donor_status):
self.donor_ID=donor_ID
self.rep_ID=rep_ID
self.office_ID=office_ID
self.donor_name=donor_name
self.donor_email=donor_email
self.donor_phone=donor_phone
self.donor_address=donor_address
self.donation_amount=donation_amount
self.donation_date=donation_date
self.monthly_start_date=monthly_start_date
self.monthly_stop_date=monthly_stop_date
self.donor_status=donor_status
def __repr__(self):
return '<Donor %r>' % self.donor_name
【问题讨论】:
-
向我们展示模型。
-
把金额除以100?它以美分返回,这样您就可以对其进行数学运算,而不必担心浮点数。
-
@Rocket Hazmat 除以 100 将删除小数点后的第二个 0,它没有变化。例如 1000 / 100 返回 10.0
-
好的,它基于@Rocket Hazmat 而这个stackoverflow.com/a/14540172/9878121 运行良好。谢谢
-
您的数据库架构使用字符串来表示金额,因此您可以将金额存储为字符串,但如果您的数据库支持,我会推荐更适合货币表示的类型