in code/lab-4/payment_charge/charge.py [0:0]
def lambda_handler(event, context):
if not is_charge_request_valid(event):
raise ValueError('Invalid charge request')
if event['customerId'].endswith('fail_auth'):
raise PaymentAuthException('Forced auth transaction failure', event)
if event['customerId'].endswith('fail_charge'):
raise PaymentChargeException('Forced charge transaction failure', event)
auth_code = provider_auth(event['fareAmount'], event['cc'], event['expiryDate'], event['cvv'])
transaction_id = provider_charge(auth_code, event['fareAmount'])
charge_response = {
"customerId": event['customerId'],
"fareId": event['fareId'],
"fareAmount": event['fareAmount'],
"chargeToken": auth_code,
"chargeId": transaction_id
}
return charge_response