- Timestamp:
- 04/09/08 01:15:42 (4 years ago)
- Location:
- trunk/fpys
- Files:
-
- 3 modified
-
client.py (modified) (2 diffs)
-
tests/client_test.py (modified) (1 diff)
-
tests/wsgi_responder.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/fpys/client.py
r38 r39 100 100 # Hackish at best... 101 101 root_tag = document.getroot().tag 102 if root_tag.find("PayResponse") >= 0 or root_tag.find("ReserveResponse") >= 0: 103 self.transaction = TransactionResponse() 104 self.transaction.id = document.find("//TransactionId").text 105 self.transaction.status = document.find("//Status").text 106 102 for tag_name in ["PayResponse", "ReserveResponse", "SettleResponse"]: 103 if self.success and root_tag.find(tag_name) >= 0: 104 self.transaction = TransactionResponse() 105 self.transaction.id = document.find("//TransactionId").text 106 self.transaction.status = document.find("//Status").text 107 107 108 108 109 class FlexiblePaymentClient(object): … … 370 371 pass 371 372 372 def settle(self): 373 pass 374 373 def settle(self, 374 transaction_id, 375 amount, 376 date = None): 377 params = {'Action': 'Settle', 378 'ReserveTransactionId': transaction_id, 379 'TransactionAmount.Amount': amount, 380 'TransactionAmount.CurrencyCode': 'USD'} 381 if date is not None: 382 params['TransactionDate'] = date 383 384 return self.execute(params) 385 386 387 -
trunk/fpys/tests/client_test.py
r38 r39 172 172 assert response.transaction.id == "134OLF7MHB2L4V9T54RHADQ9FCK5NLVZHDC" 173 173 174 def test_settle_over_amount(): 175 response = fps_client.settle("134OLF7MHB2L4V9T54RHADQ9FCK5NLVZHDC", 176 "100.00") 177 assert response.success == False 178 assert 1 == len(response.errors) 179 assert response.errors[0]['errorCode'] == 'SettleAmountGreaterThanReserveAmount' 180 181 def test_settle(): 182 response = fps_client.settle("134OLF7MHB2L4V9T54RHADQ9FCK5NLVZHDC", 183 "19.95") 184 assert response.success == True 185 assert response.transaction.id == "134OLF7MHB2L4V9T54RHADQ9FCK5NLVZHDC" 186 assert response.transaction.status == "Initiated" 187 174 188 -
trunk/fpys/tests/wsgi_responder.py
r38 r39 75 75 return [response] 76 76 77 def Settle(self, environ): 78 if environ['fps.params']['TransactionAmount.Amount'][0] == "100.00": 79 response = """<ns0:SettleResponse xmlns:ns0="http://fps.amazonaws.com/doc/2007-01-08/"><Status>Failure</Status><Errors><Errors><ErrorType>Business</ErrorType><IsRetriable>false</IsRetriable><ErrorCode>SettleAmountGreaterThanReserveAmount</ErrorCode><ReasonText>Settle Amount "$100.000000" is greater than the Reserve Amount "$19.950000"</ReasonText></Errors></Errors><RequestId>d6449438-af36-441d-9b79-88b3a363f3e0:0</RequestId></ns0:SettleResponse>""" 80 else: 81 response = """<ns0:SettleResponse xmlns:ns0="http://fps.amazonaws.com/doc/2007-01-08/"><ns0:TransactionResponse><TransactionId>134OLF7MHB2L4V9T54RHADQ9FCK5NLVZHDC</TransactionId><Status>Initiated</Status></ns0:TransactionResponse><Status>Success</Status><RequestId>a412e705-389e-4579-ad78-eee5bb611467:0</RequestId></ns0:SettleResponse>""" 82 return[response] 83 77 84 flexible_payment_service = FlexiblePaymentService() 78 85
