TorbatYar/backend/services/payment/app/providers/mock.py
Mortezakoohjani 9fac160258 feat(payment): ship Torbat Pay MVP phases 14.0-14.5
Add independent payment-service (port 8012, payment_db) with foundation licensing, BYO-PSP, merchant accounts, idempotent requests, callbacks, and immutable ledger.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 17:57:04 +03:30

13 lines
785 B
Python

class MockPspAdapter:
code="mock"
async def initiate_payment(self, request):
return {"redirect_url": f"https://mock.psp/pay/{request['id']}", "token": f"mock-{request['id']}"}
async def verify_signature(self, payload):
return payload.get("signature") in ("mock-valid", "valid", None)
async def verify_payment(self, payload):
paid=payload.get("normalized_status", payload.get("status","paid"))=="paid"
return {"verified": paid, "status": "paid" if paid else "failed", "provider_transaction_id": payload.get("provider_transaction_id")}
class ZarinpalAdapter(MockPspAdapter): code="zarinpal"
class IdpayAdapter(MockPspAdapter): code="idpay"
ADAPTERS={"mock":MockPspAdapter(),"zarinpal":ZarinpalAdapter(),"idpay":IdpayAdapter()}