This commit is contained in:
sdarbinyan
2026-05-06 23:26:00 +04:00
parent 34f6c80e57
commit 742b2665e9
91 changed files with 6310 additions and 4723 deletions

View File

@@ -0,0 +1,142 @@
eFastcheck.store
General Information
Information exchange with the Fastcheck server is realized via RESTful API. All requests to the server must be executed via HTTPS using GET||POST||PUT||DELETE requests to the given ROOT address. Body of requests must be in JSON format. All not public requests must be signed by the client and the public key must be sent to the server for client identification and sign checking.
Check if server is available
Client needs to periodically check if the server is available by sending “ping” to the client. On error corresponding message must be shown.
Protocol: https
Root Path: api.Fastcheck.store
Type GET
Path /ping
Request Parameters:
{
}
Response (OK):
{
"message": "pong",
}
________________
Create new websession
Creates a new websession for qr generation. By timeout a new websession must be requested, after the user shows some activity (click on qr).
Protocol: https
Root Path: api.Fastcheck.store
Type GET
Path /websession
Request Parameters:
{
}
Response (OK):
{
"sessionId": “1AF3781BF6B94604B771AEA1D44FA63A”
"userId" : "",
"expires" : "sessionId",
"userSessionId": "",
"Status": false
}
________________
Check websession status
Check if the user is already logged in. a new websession for qr generation. By timeout a new websession must be requested, after the user shows some activity (click on qr).
Protocol: https
Root Path: api.Fastcheck.store
Type GET
Path /websession/:webSessionID
Request Parameters:
{
}
Response (OK):
{
"sessionId": “1AF3781BF6B94604B771AEA1D44FA63A”,
"userId" : "kHaAe9roaC2uq63AKGE/8+Ti/t/iFro68QhEZ1dRGLo",
"expires" : "sessionId",
"userSessionId": "8A94EFEFD003426A9B456C48CAC99BE6",
"Status": true
}
________________
Delete websession status
Delete the session to log out from the system.
Protocol: https
Root Path: api.Fastcheck.store
Type DELETE
Path /websession/:webSessionID
Request Parameters:
{
"sessionId": “1AF3781BF6B94604B771AEA1D44FA63A”
}
Response (OK):
{
}
________________
Check Fastcheck status
Check if fastcheck exists and get the amount assigned to check.
Protocol: https
Root Path: api.Fastcheck.store
Type GET
Path /fastcheck
Request Parameters:
{
"fastcheck": “1234-5678-0001”,
}
Response (OK):
{
"fastcheck": "1234-5678-0001",
"expiration": 2021-07-07T09:08:18Z ,
"Status": true
}
________________
New Fastcheck
Create a fastcheck for a given amount. The Users must have a sufficient amount on the balance.
Protocol: https
Root Path: api.Fastcheck.store
Type POST
Path /fastcheck
HEADER: Authorization - {"sessionID": "1AF3781BF6B94604B771AEA1D44FA63A"}
Request Parameters:
{
"amount": 158000,
"currency": "RUB"
}
Response (OK):
{
"fastcheck": "1234-5678-0001",
"expiration": 2021-07-07T09:08:18Z ,
"code": "5864",
"Status": true
}
________________
Accept Fastcheck
Accept fastcheck to the user balance.
Protocol: https
Root Path: api.Fastcheck.store
Type POST
Path /fastcheck
HEADER: Authorization - {"sessionID": "1AF3781BF6B94604B771AEA1D44FA63A"}
Request Parameters:
{
"fastcheck": "1234-5678-0001",
"code": "5864"
}
Response (404-ERROR):
{
"message": "not authorized"
}
Response (200-OK):
{
"message": "ok"
}

262
public/SBP QR API.txt Normal file
View File

@@ -0,0 +1,262 @@
General Information
Information exchange with the SBP server is realized via RESTful API. All requests to the server must be executed via HTTPS using GET||POST||PUT||DELETE requests to the given ROOT address. Body of requests must be in JSON format. All not public requests must be signed by the client and the public key must be sent to the server for client identification and sign checking.
Header:
“Authorization”: {JSON WITH KEY AND PARTNERID}
Check if server is available
Client needs to periodically check if the server is available by sending “ping” to the client. On error corresponding message must be shown.
Protocol: https
Root Path: QR.VITANOVA.NETWORK
Type GET
Path /ping
Request Parameters:
{
}
Response (Error):
{
"message": "pong",
"status": "Wrong Header"
}
Response (OK):
{
"message": "pong",
"status": "Correct Header"
}
________________
Create New QR code
Create New QR for payment via SBP
Protocol: https
Root Path: QR.VITANOVA.NETWORK
Type POST
Path /qr
Request Parameters:
{
"amount": 10.00, //amount from 10Rub to 499.000 Rub
"qrDescription": "Item description",
"order": "540", //orderid at partners platform
"partnerID": 102 //same as in header
"Phonemask": 79xxxx66265 //User phone number mask, needed only for crypto based operations. Payment will be accepted only from phone numbers corresponding to the mask
"Namelastname": Hakxx Sargxxxx /Mask for User name, lastname in cyrilic, needed only for crypto based operations. Payment will be accepted only from the user corresponding to that mask.
}
Response !=200(Error):
{
"error": "wrong key"
}
Response =200(OK):
{
"qrId": "BD10002CI1V3JP1T8QR8TIQ8K35RBVQB",
"qrStatus": "NEW",
"qrExpirationDate": "2025-11-20T10:10:44Z",
"Payload": "https://qr.nspk.ru/BD10002CI1V3JP1T8QR8TIQ8K35RBVQB?type=02&bank=100000000007&sum=1000&cur=RUB&crc=8ACC",
"qrUrl": "https://e-commerce.raiffeisen.ru/api/sbp/v1/qr/BD10002CI1V3JP1T8QR8TIQ8K35RBVQB/image"
}
________________
Check Dynamic QR code
Check QR status
Protocol: https
Root Path: QR.VITANOVA.NETWORK
Type GET
Path /qr/dynamic/{qrId}
Request Parameters:
{
}
Response !=200(Error):
{
"error": "Error from the bank "
}
Response =200(OK):
{
`json:"nspkID"` //": "AD100060JFQF8FSB9Q28FFL88IH6SST0" `json:"amount"` // "1235"
`json:"currency" // "RUB"
`json:"order"` // "126" partner order id PaymentDetails
`json:"paymentDetails"` // "Назначение платежа 2",
`json:"qrType"` //"QRDynamic",
`json:"qrExpirationDate"` //: "2025-11-22T09:14:38+03:00" `json:"sbpBank"` // "raiffeisen"
`json:"sbpMerchant"` //"Dexar"
`json:"sbpMerchantId"` //"", uint64
`json:"sbpOperationId"` //0 Status
`json:"status"` //": "NEW", "APPROVED", "REJECTED", "COMPLETED"
`json:"nspkurl"` //"https://qr.nspk.ru/AD100060JFQF8FSB9Q28FFL88IH6SST0
`json:"statusurl"` // "https://partner.com/1234321/status" url for checking QR `json:"redirectUrl"` //"https://fastcheck.store/"
`json:"qrDescription"` //"QR для оплаты заказа"
`json:"additionalInfo"` // TTL
`json:"TTL"` //10 timeout in minutes
`json:"callbackUrl"` // https://partner.com/1234321 callback after QR get paid
`json:"retry"` //0 retry count for calling partner
`json:"partnerID"` //103 Partner created QR PartnerqrID `json:"partnerqrID"` //QR ID in partner system RequestIP
`json:"requestIP"` //IP address of client requested QR
}
________________
Check Static QR code
Get all qr-s paid by static QR for today, skipping already read qr codes
Protocol: https
Root Path: QR.VITANOVA.NETWORK
Type GET
Path /qr/static/{qrId}?skip=25
Request Parameters:
{
}
Response =200(OK):
[{
`json:"nspkID"` //": "AD100060JFQF8FSB9Q28FFL88IH6SST0" `json:"amount"` // "1235"
`json:"currency" // "RUB"
`json:"order"` // "126" partner order id PaymentDetails
`json:"paymentDetails"` // "Назначение платежа 2",
`json:"qrType"` //"QRDynamic",
`json:"qrExpirationDate"` //: "2025-11-22T09:14:38+03:00" `json:"sbpBank"` // "raiffeisen"
`json:"sbpMerchant"` //"Dexar"
`json:"sbpMerchantId"` //"", uint64
`json:"sbpOperationId"` //0 Status
`json:"status"` //": "NEW", "APPROVED", "REJECTED", "COMPLETED"
`json:"nspkurl"` //"https://qr.nspk.ru/AD100060JFQF8FSB9Q28FFL88IH6SST0
`json:"statusurl"` // "https://partner.com/1234321/status" url for checking QR `json:"redirectUrl"` //"https://fastcheck.store/"
`json:"qrDescription"` //"QR для оплаты заказа"
`json:"additionalInfo"` // TTL
`json:"TTL"` //10 timeout in minutes
`json:"callbackUrl"` // https://partner.com/1234321 callback after QR get paid
`json:"retry"` //0 retry count for calling partner
`json:"partnerID"` //103 Partner created QR PartnerqrID `json:"partnerqrID"` //QR ID in partner system RequestIP
`json:"requestIP"` //IP address of client requested QR
}]
________________
Delete QR
Delete unused QR. If QR is not paid until expiration time, it will be automatically deleted.
Protocol: https
Root Path: QR.VITANOVA.NETWORK
Type DELETE
Path /qr/{qrId}
Request Parameters:
{
}
Response !=200(Error):
{
"error": "Error from the bank "
}
Response =200(OK):
{
}
________________
Check Partner
Returns partner status, with balance and transactions. Each transaction id is QR code, which can be checked additionally.
Root Path: API.VITANOVA.NETWORK
Type Get
Path /partners/{partnerID}
Request Parameters:
{
}
Response !=200(Error):
{
"error": "Not authorized "
}
Response =200(OK):
{
"telegram_id": 8285633,
"username": "ZZZ",
"first_name": "АMAN",
"last_name": "",
"balance": 22,
"transaction": [
{
"additionalInfo": "Ручка",
"paymentPurpose": "Ручка",
"amount": 22,
"code": "SUCCESS",
"createDate": "2025-11-22T15:57:40.925104+03:00",
"currency": "RUB",
"order": "8285633735_301",
"paymentStatus": "SUCCESS",
"qrId": "AD10004C1K9N71MN907RD56UOA0BHIBR",
"transactionDate": "2025-11-22T15:58:14.814187+03:00",
"transactionId": 771515533,
"qrExpirationDate": "2025-11-22T16:12:40+03:00"
}
],
"inn": 0
}
________________
Withdraw
Get amount from balance and Creates fastcheck, which then can be for buying usdt, transferring to bank account and to bank card. Fastcheck can be checked on site or via API only by Id, but can be used only with code.
Root Path: QR.VITANOVA.NETWORK
Type POST
Path/partners/withdraw/{partnerID}
Request Parameters:
{
“amount”: 10600.00
“currency”: “RUB”
“partnerId: “1023454”
“wallet”: “TBia4uHnb3oSSZm5isP284cA7Np1v15Vhi”
“”
“rate”:79.50
}
Response !=200(Error):
{
"error": "Not enough amount on balance "
}
Response !=200(Error):
{
"error": "Rate is not correct "
}
Response =200(OK):
{
“trxID”:”T5Mv2v8n9L7jY4k1pW3QhUoZfE9R1X3s7rY6tB0pA2C4D6E8F5H”
}
________________
RATE
Get currency exchange rate.
Root Path: QR.VITANOVA.NETWORK
Type GET
Path/partners/rate
Request Parameters:
Response !=200(Error):
{
"error": "Not Authorized "
}
Response =200(OK):
{
"rate": 78.5
}

5
public/alipay.svg Normal file
View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48">
<rect width="48" height="48" rx="8" fill="#1677FF"/>
<text x="24" y="34" font-family="Arial,Helvetica,sans-serif" font-size="26" font-weight="900"
text-anchor="middle" fill="#fff">A</text>
</svg>

After

Width:  |  Height:  |  Size: 269 B

0
public/example.json Normal file
View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

1
public/flags/arm.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path fill="#102f9b" d="M1 11H31V21H1z"></path><path d="M5,4H27c2.208,0,4,1.792,4,4v4H1v-4c0-2.208,1.792-4,4-4Z" fill="#c82a20"></path><path d="M5,20H27c2.208,0,4,1.792,4,4v4H1v-4c0-2.208,1.792-4,4-4Z" transform="rotate(180 16 24)" fill="#e8ad3b"></path><path d="M27,4H5c-2.209,0-4,1.791-4,4V24c0,2.209,1.791,4,4,4H27c2.209,0,4-1.791,4-4V8c0-2.209-1.791-4-4-4Zm3,20c0,1.654-1.346,3-3,3H5c-1.654,0-3-1.346-3-3V8c0-1.654,1.346-3,3-3H27c1.654,0,3,1.346,3,3V24Z" opacity=".15"></path><path d="M27,5H5c-1.657,0-3,1.343-3,3v1c0-1.657,1.343-3,3-3H27c1.657,0,3,1.343,3,3v-1c0-1.657-1.343-3-3-3Z" fill="#fff" opacity=".2"></path></svg>

After

Width:  |  Height:  |  Size: 709 B

1
public/flags/en.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><rect x="1" y="4" width="30" height="24" rx="4" ry="4" fill="#fff"></rect><path d="M1.638,5.846H30.362c-.711-1.108-1.947-1.846-3.362-1.846H5c-1.414,0-2.65,.738-3.362,1.846Z" fill="#a62842"></path><path d="M2.03,7.692c-.008,.103-.03,.202-.03,.308v1.539H31v-1.539c0-.105-.022-.204-.03-.308H2.03Z" fill="#a62842"></path><path fill="#a62842" d="M2 11.385H31V13.231H2z"></path><path fill="#a62842" d="M2 15.077H31V16.923000000000002H2z"></path><path fill="#a62842" d="M1 18.769H31V20.615H1z"></path><path d="M1,24c0,.105,.023,.204,.031,.308H30.969c.008-.103,.031-.202,.031-.308v-1.539H1v1.539Z" fill="#a62842"></path><path d="M30.362,26.154H1.638c.711,1.108,1.947,1.846,3.362,1.846H27c1.414,0,2.65-.738,3.362-1.846Z" fill="#a62842"></path><path d="M5,4h11v12.923H1V8c0-2.208,1.792-4,4-4Z" fill="#102d5e"></path><path d="M27,4H5c-2.209,0-4,1.791-4,4V24c0,2.209,1.791,4,4,4H27c2.209,0,4-1.791,4-4V8c0-2.209-1.791-4-4-4Zm3,20c0,1.654-1.346,3-3,3H5c-1.654,0-3-1.346-3-3V8c0-1.654,1.346-3,3-3H27c1.654,0,3,1.346,3,3V24Z" opacity=".15"></path><path d="M27,5H5c-1.657,0-3,1.343-3,3v1c0-1.657,1.343-3,3-3H27c1.657,0,3,1.343,3,3v-1c0-1.657-1.343-3-3-3Z" fill="#fff" opacity=".2"></path><path fill="#fff" d="M4.601 7.463L5.193 7.033 4.462 7.033 4.236 6.338 4.01 7.033 3.279 7.033 3.87 7.463 3.644 8.158 4.236 7.729 4.827 8.158 4.601 7.463z"></path><path fill="#fff" d="M7.58 7.463L8.172 7.033 7.441 7.033 7.215 6.338 6.989 7.033 6.258 7.033 6.849 7.463 6.623 8.158 7.215 7.729 7.806 8.158 7.58 7.463z"></path><path fill="#fff" d="M10.56 7.463L11.151 7.033 10.42 7.033 10.194 6.338 9.968 7.033 9.237 7.033 9.828 7.463 9.603 8.158 10.194 7.729 10.785 8.158 10.56 7.463z"></path><path fill="#fff" d="M6.066 9.283L6.658 8.854 5.927 8.854 5.701 8.158 5.475 8.854 4.744 8.854 5.335 9.283 5.109 9.979 5.701 9.549 6.292 9.979 6.066 9.283z"></path><path fill="#fff" d="M9.046 9.283L9.637 8.854 8.906 8.854 8.68 8.158 8.454 8.854 7.723 8.854 8.314 9.283 8.089 9.979 8.68 9.549 9.271 9.979 9.046 9.283z"></path><path fill="#fff" d="M12.025 9.283L12.616 8.854 11.885 8.854 11.659 8.158 11.433 8.854 10.702 8.854 11.294 9.283 11.068 9.979 11.659 9.549 12.251 9.979 12.025 9.283z"></path><path fill="#fff" d="M6.066 12.924L6.658 12.494 5.927 12.494 5.701 11.799 5.475 12.494 4.744 12.494 5.335 12.924 5.109 13.619 5.701 13.19 6.292 13.619 6.066 12.924z"></path><path fill="#fff" d="M9.046 12.924L9.637 12.494 8.906 12.494 8.68 11.799 8.454 12.494 7.723 12.494 8.314 12.924 8.089 13.619 8.68 13.19 9.271 13.619 9.046 12.924z"></path><path fill="#fff" d="M12.025 12.924L12.616 12.494 11.885 12.494 11.659 11.799 11.433 12.494 10.702 12.494 11.294 12.924 11.068 13.619 11.659 13.19 12.251 13.619 12.025 12.924z"></path><path fill="#fff" d="M13.539 7.463L14.13 7.033 13.399 7.033 13.173 6.338 12.947 7.033 12.216 7.033 12.808 7.463 12.582 8.158 13.173 7.729 13.765 8.158 13.539 7.463z"></path><path fill="#fff" d="M4.601 11.104L5.193 10.674 4.462 10.674 4.236 9.979 4.01 10.674 3.279 10.674 3.87 11.104 3.644 11.799 4.236 11.369 4.827 11.799 4.601 11.104z"></path><path fill="#fff" d="M7.58 11.104L8.172 10.674 7.441 10.674 7.215 9.979 6.989 10.674 6.258 10.674 6.849 11.104 6.623 11.799 7.215 11.369 7.806 11.799 7.58 11.104z"></path><path fill="#fff" d="M10.56 11.104L11.151 10.674 10.42 10.674 10.194 9.979 9.968 10.674 9.237 10.674 9.828 11.104 9.603 11.799 10.194 11.369 10.785 11.799 10.56 11.104z"></path><path fill="#fff" d="M13.539 11.104L14.13 10.674 13.399 10.674 13.173 9.979 12.947 10.674 12.216 10.674 12.808 11.104 12.582 11.799 13.173 11.369 13.765 11.799 13.539 11.104z"></path><path fill="#fff" d="M4.601 14.744L5.193 14.315 4.462 14.315 4.236 13.619 4.01 14.315 3.279 14.315 3.87 14.744 3.644 15.44 4.236 15.01 4.827 15.44 4.601 14.744z"></path><path fill="#fff" d="M7.58 14.744L8.172 14.315 7.441 14.315 7.215 13.619 6.989 14.315 6.258 14.315 6.849 14.744 6.623 15.44 7.215 15.01 7.806 15.44 7.58 14.744z"></path><path fill="#fff" d="M10.56 14.744L11.151 14.315 10.42 14.315 10.194 13.619 9.968 14.315 9.237 14.315 9.828 14.744 9.603 15.44 10.194 15.01 10.785 15.44 10.56 14.744z"></path><path fill="#fff" d="M13.539 14.744L14.13 14.315 13.399 14.315 13.173 13.619 12.947 14.315 12.216 14.315 12.808 14.744 12.582 15.44 13.173 15.01 13.765 15.44 13.539 14.744z"></path></svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

1
public/flags/ru.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path fill="#1435a1" d="M1 11H31V21H1z"></path><path d="M5,4H27c2.208,0,4,1.792,4,4v4H1v-4c0-2.208,1.792-4,4-4Z" fill="#fff"></path><path d="M5,20H27c2.208,0,4,1.792,4,4v4H1v-4c0-2.208,1.792-4,4-4Z" transform="rotate(180 16 24)" fill="#c53a28"></path><path d="M27,4H5c-2.209,0-4,1.791-4,4V24c0,2.209,1.791,4,4,4H27c2.209,0,4-1.791,4-4V8c0-2.209-1.791-4-4-4Zm3,20c0,1.654-1.346,3-3,3H5c-1.654,0-3-1.346-3-3V8c0-1.654,1.346-3,3-3H27c1.654,0,3,1.346,3,3V24Z" opacity=".15"></path><path d="M27,5H5c-1.657,0-3,1.343-3,3v1c0-1.657,1.343-3,3-3H27c1.657,0,3,1.343,3,3v-1c0-1.657-1.343-3-3-3Z" fill="#fff" opacity=".2"></path></svg>

After

Width:  |  Height:  |  Size: 706 B

130
public/i18n/en.json Normal file
View File

@@ -0,0 +1,130 @@
{
"header": {
"nav_about": "About",
"nav_contacts": "Contacts",
"nav_partners": "Partners",
"nav_support": "Support",
"aria_nav": "Navigation",
"aria_menu": "Mobile menu",
"aria_burger": "Menu",
"aria_close": "Close menu"
},
"footer": {
"desc": "An innovative virtual check service for individuals. Create digital checks online and cash them out at partner bank ATMs 24/7.",
"contacts_heading": "Contacts",
"russia": "Russia",
"armenia": "Armenia",
"support_label": "Tech support",
"support_hours": "24/7",
"questions_label": "Questions",
"questions_hours": "10:0019:00 MSK",
"legal_heading": "Legal details",
"legal_company": "LLC «VIAEXPORT»",
"legal_inn_ru": "TIN (RU): 9909675800",
"legal_inn_am": "TIN (AM): 01051049",
"legal_kpp": "KPP: 770287001",
"legal_ogrn": "OGRN: 282.110.1296681",
"legal_address": "Armenia, 0201, Yerevan, Minskaya St. 21-23, apt. 44",
"rights": "LLC «VIAEXPORT». All rights reserved.",
"director": "Director: Amirkhanyan Sargis Artashesovich"
},
"fastcheck": {
"subtitle": "Enter fastCHECK details or create a new one",
"number_label": "fastCHECK number",
"number_placeholder": "123456-123456-123456",
"number_new": "New",
"amount_label": "Amount",
"amount_checking": "Checking…",
"code_label": "Code",
"code_placeholder": "000000",
"pay_btn": "Pay",
"modal_title": "Sign in via Telegram",
"modal_sub": "Scan QR or open the link",
"modal_loading": "Loading…",
"modal_open_tg": "Open in Telegram",
"modal_confirming": "Confirming payment…",
"modal_waiting": "Waiting for sign-in…",
"modal_paid_title": "Paid",
"modal_paid_sub": "fastCHECK successfully accepted.",
"share_email": "Send by email",
"share_tg": "Send via Telegram"
},
"create": {
"title": "New",
"subtitle": "Enter the amount to top up",
"back_label": "Back",
"payment_label": "Payment method",
"currency_label": "Currency",
"amount_label": "Payment amount",
"note_label": "Note",
"note_placeholder": "Reason for payment...",
"creating": "Creating…",
"create_btn": "Create",
"amount_hint": "Allowed amount:",
"qr_label": "Scan QR to pay",
"qr_waiting": "Waiting for payment confirmation…"
},
"sbp": {
"title": "Pay via SBP",
"subtitle": "Fast Payment System",
"amount_label": "Payment amount",
"currency_name": "Russian ruble",
"note_label": "Note",
"note_placeholder": "Reason for payment...",
"pay_loading": "Please wait...",
"pay_btn": "Proceed to payment"
},
"about": {
"title": "About the service",
"lead": "fastCHECK is an innovative virtual check service for individuals, available 24/7.",
"what_title": "What is fastCHECK?",
"what_text": "fastCHECK is a digital check you create online and cash out at partner bank ATMs at any time of day. No queues, no offices — just your phone and the nearest ATM.",
"how_title": "How does it work?",
"step1": "Log in and create a new fastCHECK with the required amount.",
"step2": "Save the check number and 5-digit code.",
"step3": "Enter the details on the site and confirm via Telegram.",
"step4": "Receive the funds in a convenient way.",
"why_title": "Why fastCHECK?",
"why1": "Available 24/7 — including weekends and holidays.",
"why2": "Secure authorisation via Telegram.",
"why3": "Supports SBP and other popular payment methods.",
"why4": "Fast processing — from seconds to a few minutes.",
"company_title": "About the company",
"company_text": "The service is developed by LLC VIAEXPORT (TIN 9909675800). The company is registered in Russia and Armenia. Legal address: Armenia, 0201, Yerevan, Minskaya St. 21-23, apt. 44."
},
"contacts": {
"title": "Contacts",
"lead": "We are available 24/7. Choose your preferred way to reach us.",
"ru_label": "Phone — Russia",
"am_label": "Phone — Armenia",
"email_label": "Email",
"tg_label": "Telegram bot",
"hours_title": "Working hours"
},
"errors": {
"not_found": "Payment not found or expired.",
"lookup_failed": "Could not verify the number. Please try again.",
"session_failed": "Could not create a session. Please try again.",
"payment_failed": "Could not process the payment. Check the code and try again.",
"invalid_code": "Invalid code. Please check and try again.",
"invalid_amount": "Please enter a valid amount."
},
"common": {
"secure": "Secure connection"
},
"partners": {
"title": "Partners",
"lead": "Stores, services and companies accepting fastCHECK as a payment method.",
"cat_finance": "Finance",
"cat_retail": "Retail",
"cat_hotels": "Hotels",
"cat_services": "Services",
"p1_desc": "Currency exchange and transfers across Armenia.",
"p2_desc": "Forex broker supporting fastCHECK for account top-ups.",
"p3_desc": "Online retailer with delivery across Russia and CIS.",
"p4_desc": "Hotel booking and payment via fastCHECK.",
"cta_title": "Want to become a partner?",
"cta_text": "Connect fastCHECK to your business — fast, with minimal paperwork.",
"cta_btn": "Contact us"
}
}

130
public/i18n/hy.json Normal file
View File

@@ -0,0 +1,130 @@
{
"header": {
"nav_about": "Ծառայության մասին",
"nav_contacts": "Կապ",
"nav_partners": "Գործընկերներ",
"nav_support": "Աջակցություն",
"aria_nav": "Նավիգացիա",
"aria_menu": "Բջջային ընտրացանկ",
"aria_burger": "Ընտրացանկ",
"aria_close": "Փակել ընտրացանկը"
},
"footer": {
"desc": "Ֆիզիկական անձանց համար վիրտուալ չեկերի նորարարական ծառայություն: Ստեղծեք թվային չեկեր առցանց և կանխիկացրեք դրանք գործընկեր բանկերի բանկոմատներում 24/7:",
"contacts_heading": "Կապ",
"russia": "Ռուսաստան",
"armenia": "Հայաստան",
"support_label": "Տեխ. աջակցություն",
"support_hours": "24/7",
"questions_label": "Հարցեր",
"questions_hours": "10:0019:00 MSK",
"legal_heading": "Իրավաբանական տվյալներ",
"legal_company": "ООО «ВИАЭКСПОРТ»",
"legal_inn_ru": "ИНН (РФ): 9909675800",
"legal_inn_am": "ИНН (AM): 01051049",
"legal_kpp": "КПП: 770287001",
"legal_ogrn": "ОГРН: 282.110.1296681",
"legal_address": "Հայաստան, 0201, Երևան, Մինսկայա փ. 21-23, բն. 44",
"rights": "ООО «ВИАЭКСПОРТ»: Բոլոր իրավունքները պաշտպանված են:",
"director": "Տնօրեն՝ Ամիրխանյան Սարգիս Արտաշեսի"
},
"fastcheck": {
"subtitle": "Մուտքագրեք fastCHECK տվյալները կամ ստեղծեք նորը",
"number_label": "fastCHECK համար",
"number_placeholder": "123456-123456-123456",
"number_new": "Նոր",
"amount_label": "Գումար",
"amount_checking": "Ստուգվում է…",
"code_label": "Կոդ",
"code_placeholder": "000000",
"pay_btn": "Վճարել",
"modal_title": "Մուտք գործել Telegram-ով",
"modal_sub": "Սկանավորեք QR կամ բացեք հղումը",
"modal_loading": "Բեռնվում է…",
"modal_open_tg": "Բացել Telegram-ում",
"modal_confirming": "Վճարման հաստատում…",
"modal_waiting": "Սպասում ենք մուտքի…",
"modal_paid_title": "Վճարված է",
"modal_paid_sub": "fastCHECK-ը հաջողությամբ ընդունված է:",
"share_email": "Ուղարկել էլ. նամակով",
"share_tg": "Ուղարկել Telegram-ով"
},
"create": {
"title": "Նոր",
"subtitle": "Նշեք համալրման գումարը",
"back_label": "Հետ",
"payment_label": "Վճարման եղանակ",
"currency_label": "Արժույթ",
"amount_label": "Վճարման գումար",
"note_label": "Նշում",
"note_placeholder": "Վճարման պատճառ...",
"creating": "Ստեղծվում է…",
"create_btn": "Ստեղծել",
"amount_hint": "Թույլատրելի գումար՝",
"qr_label": "Սկանավորեք QR-կոդը վճարելու համար",
"qr_waiting": "Սպասում ենք վճարման հաստատման…"
},
"sbp": {
"title": "Վճարել SBP-ով",
"subtitle": "Արագ վճարումների համակարգ",
"amount_label": "Վճարման գումար",
"currency_name": "Ռուսական ռուբլի",
"note_label": "Նշում",
"note_placeholder": "Վճարման պատճառ...",
"pay_loading": "Սպասեք...",
"pay_btn": "Անցնել վճարմանը"
},
"about": {
"title": "Ծառայության մասին",
"lead": "fastCHECK-ը ֆիզիկական անձանց համար վիրտուալ չեկերի նորարարական ծառայություն է, հասանելի 24/7:",
"what_title": "Ի՞նչ է fastCHECK-ը",
"what_text": "fastCHECK-ը թվային չեկ է, որը ստեղծում եք առցանց և կանխիկացնում գործընկեր բանկերի բանկոմատներում: Հերթեր չկան, գրասենյակներ չկան — միայն հեռախոս և ամենամոտ բանկոմատ:",
"how_title": "Ինչպե՞ս է դա աշխատում",
"step1": "Մուտք գործեք և ստեղծեք նոր fastCHECK անհրաժեշտ գումարով:",
"step2": "Պահպանեք չեկի համարն ու 5-նիշ կոդը:",
"step3": "Մուտքագրեք տվյալները կայքում և հաստատեք Telegram-ի միջոցով:",
"step4": "Ստացեք գումարն ձեզ հարմար ձևով:",
"why_title": "Ինչու՞ fastCHECK",
"why1": "Հասանելի 24/7 — ներառյալ հանգստյան և տոն օրերը:",
"why2": "Անվտանգ թույլտվություն Telegram-ի միջոցով:",
"why3": "Աջակցում է ՍԲՊ-ին և այլ հայտնի վճարման եղանակներ:",
"why4": "Արագ մշակում — վայրկյաններից մինչև մի քանի րոպե:",
"company_title": "Ընկերության մասին",
"company_text": "Ծառայությունը մշակվել է ООО «ВИАЭКСПОРТ»-ի կողմից (ИНН 9909675800): Ընկերությունը գրանցված է Ռուսաստանում և Հայաստանում: Իրավաբանական հասցե՝ Հայաստան, 0201, Երևան, Մինսկայա փ. 21-23, բն. 44:"
},
"contacts": {
"title": "Կապ",
"lead": "Մենք կապի մեջ ենք 24/7: Ընտրեք կապի հարմար եղանակ:",
"ru_label": "Հեռախոս — Ռուսաստան",
"am_label": "Հեռախոս — Հայաստան",
"email_label": "Էլ. փոստ",
"tg_label": "Telegram-բոտ",
"hours_title": "Աշխատանքային ժամեր"
},
"errors": {
"not_found": "Վճարումը չի գտնվել կամ ժամկետն անցել է:",
"lookup_failed": "Չհաջողվեց ստուգել համարը: Կրկին փորձեք:",
"session_failed": "Չհաջողվեց ստեղծել նիստ: Կրկին փորձեք:",
"payment_failed": "Չհաջողվեց մշակել վճարումը: Ստուգեք կոդը և կրկին փորձեք:",
"invalid_code": "Սխալ կոդ: Ստուգեք և կրկին մուտքագրեք:",
"invalid_amount": "Մուտքագրեք ճիշտ գումար:"
},
"common": {
"secure": "Անվտանգ կապ"
},
"partners": {
"title": "Գործընկերներ",
"lead": "Խանութներ, ծառայություններ և ընկերություններ, որոնք ընդունում են fastCHECK-ը:",
"cat_finance": "Ֆինանսներ",
"cat_retail": "Ռիթեյլ",
"cat_hotels": "Հյուրանոցներ",
"cat_services": "Ծառայություններ",
"p1_desc": "Արժույթի փոխանակում և փոխանցումներ ամբողջ Հայաստանում:",
"p2_desc": "Ֆորեքս բրոքեր fastCHECK-ով հաշիվ համալրման համար:",
"p3_desc": "Առցանց ռիթեյլ՝ Ռուսաստանով և ԱՊՀ-ով առաքմամբ:",
"p4_desc": "Հյուրանոցի ամրագրում և վճարում fastCHECK-ի միջոցով:",
"cta_title": "Ցանկանու՞մ եք դառնալ գործընկեր",
"cta_text": "Միացրեք fastCHECK-ը ձեր բիզնեսին — արագ, նվազ փաստաթղթերով:",
"cta_btn": "Կապվեք մեզ հետ"
}
}

130
public/i18n/ru.json Normal file
View File

@@ -0,0 +1,130 @@
{
"header": {
"nav_about": "О сервисе",
"nav_contacts": "Контакты",
"nav_partners": "Партнёры",
"nav_support": "Поддержка",
"aria_nav": "Навигация",
"aria_menu": "Мобильное меню",
"aria_burger": "Меню",
"aria_close": "Закрыть меню"
},
"footer": {
"desc": "Инновационный сервис виртуальных чеков для физических лиц. Создавайте цифровые чеки онлайн и обналичивайте их через банкоматы банков-партнёров 24/7.",
"contacts_heading": "Контакты",
"russia": "Россия",
"armenia": "Армения",
"support_label": "Техподдержка",
"support_hours": "24/7",
"questions_label": "Вопросы",
"questions_hours": "10:0019:00 МСК",
"legal_heading": "Реквизиты",
"legal_company": "ООО «ВИАЭКСПОРТ»",
"legal_inn_ru": "ИНН (РФ): 9909675800",
"legal_inn_am": "ИНН (AM): 01051049",
"legal_kpp": "КПП: 770287001",
"legal_ogrn": "ОГРН: 282.110.1296681",
"legal_address": "Армения, 0201, Ереван, ул. Минская, дом 21-23, кв. 44",
"rights": "ООО «ВИАЭКСПОРТ». Все права защищены.",
"director": "Директор: Амирханян Саргис Арташесович"
},
"fastcheck": {
"subtitle": "Введите данные fastCHECK или создайте новый",
"number_label": "Номер fastCHECK",
"number_placeholder": "123456-123456-123456",
"number_new": "Новый",
"amount_label": "Сумма",
"amount_checking": "Проверяем…",
"code_label": "Код",
"code_placeholder": "000000",
"pay_btn": "Оплатить",
"modal_title": "Войти через Telegram",
"modal_sub": "Отсканируйте QR или откройте ссылку",
"modal_loading": "Загрузка…",
"modal_open_tg": "Открыть в Telegram",
"modal_confirming": "Подтверждение оплаты…",
"modal_waiting": "Ожидание входа…",
"modal_paid_title": "Оплачено",
"modal_paid_sub": "fastCHECK успешно принят.",
"share_email": "Отправить на почту",
"share_tg": "Отправить в Telegram"
},
"create": {
"title": "Новый",
"subtitle": "Укажите сумму для пополнения",
"back_label": "Назад",
"payment_label": "Способ оплаты",
"currency_label": "Валюта",
"amount_label": "Сумма платежа",
"note_label": "Примечание",
"note_placeholder": "Причина платежа...",
"creating": "Создание…",
"create_btn": "Создать",
"amount_hint": "Допустимая сумма:",
"qr_label": "Отсканируйте QR для оплаты",
"qr_waiting": "Ожидаем подтверждения оплаты…"
},
"sbp": {
"title": "Оплата через СБП",
"subtitle": "Система быстрых платежей",
"amount_label": "Сумма платежа",
"currency_name": "Российский рубль",
"note_label": "Примечание",
"note_placeholder": "Причина платежа...",
"pay_loading": "Подождите...",
"pay_btn": "Перейти к оплате"
},
"about": {
"title": "О сервисе",
"lead": "fastCHECK — инновационный сервис виртуальных чеков для физических лиц, доступный 24/7.",
"what_title": "Что такое fastCHECK?",
"what_text": "fastCHECK — это цифровой чек, который вы создаёте онлайн и обналичиваете через банкоматы банков-партнёров в любое время суток. Никакой очереди, никаких офисов — только телефон и ближайший банкомат.",
"how_title": "Как это работает?",
"step1": "Зайдите в личный кабинет и создайте новый fastCHECK с нужной суммой.",
"step2": "Запомните или сохраните номер чека и 5-значный код.",
"step3": "Введите данные на сайте и подтвердите операцию через Telegram.",
"step4": "Получите средства удобным вам способом.",
"why_title": "Почему fastCHECK?",
"why1": "Работает 24/7 — включая выходные и праздники.",
"why2": "Безопасная авторизация через Telegram.",
"why3": "Поддержка СБП и других популярных методов оплаты.",
"why4": "Быстрое обслуживание — от секунд до нескольких минут.",
"company_title": "О компании",
"company_text": "Сервис разработан ООО «ВИАЭКСПОРТ» (ИНН 9909675800). Компания зарегистрирована в России и Армении, юридический адрес: Армения, 0201, Ереван, ул. Минская, дом 21-23, кв. 44."
},
"contacts": {
"title": "Контакты",
"lead": "Мы на связи 24/7. Выберите удобный способ связи.",
"ru_label": "Телефон — Россия",
"am_label": "Телефон — Армения",
"email_label": "Электронная почта",
"tg_label": "Telegram-бот",
"hours_title": "Часы работы"
},
"errors": {
"not_found": "Платёж не найден или просрочен.",
"lookup_failed": "Не удалось проверить номер. Попробуйте ещё раз.",
"session_failed": "Не удалось создать сессию. Попробуйте ещё раз.",
"payment_failed": "Не удалось принять платёж. Проверьте код и попробуйте снова.",
"invalid_code": "Неверный код. Проверьте и введите снова.",
"invalid_amount": "Введите корректную сумму."
},
"common": {
"secure": "Защищённое соединение"
},
"partners": {
"title": "Партнёры",
"lead": "Магазины, сервисы и компании, принимающие fastCHECK как способ оплаты.",
"cat_finance": "Финансы",
"cat_retail": "Ритейл",
"cat_hotels": "Отели",
"cat_services": "Услуги",
"p1_desc": "Обмен валют и переводы по всей Армении.",
"p2_desc": "Форекс-брокер с поддержкой fastCHECK для пополнения счёта.",
"p3_desc": "Онлайн-ритейлер с доставкой по России и СНГ.",
"p4_desc": "Бронирование и оплата проживания через fastCHECK.",
"cta_title": "Хотите стать партнёром?",
"cta_text": "Подключите fastCHECK к своему бизнесу — быстро, без лишних документов.",
"cta_btn": "Связаться с нами"
}
}

BIN
public/logo_big.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 KiB

BIN
public/logo_small.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

1
public/mastercard.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="999.2" height="776" viewBox="0 0 999.2 776" xml:space="preserve"><path d="M181.1 774.3v-51.5c0-19.7-12-32.6-32.6-32.6-10.3 0-21.5 3.4-29.2 14.6-6-9.4-14.6-14.6-27.5-14.6-8.6 0-17.2 2.6-24 12v-10.3h-18v82.4h18v-45.5c0-14.6 7.7-21.5 19.7-21.5s18 7.7 18 21.5v45.5h18v-45.5c0-14.6 8.6-21.5 19.7-21.5 12 0 18 7.7 18 21.5v45.5zm267-82.4h-29.2V667h-18v24.9h-16.3v16.3h16.3V746c0 18.9 7.7 30 28.3 30 7.7 0 16.3-2.6 22.3-6l-5.2-15.5c-5.2 3.4-11.2 4.3-15.5 4.3-8.6 0-12-5.2-12-13.7v-36.9H448v-16.3zm152.8-1.8c-10.3 0-17.2 5.2-21.5 12v-10.3h-18v82.4h18v-46.4c0-13.7 6-21.5 17.2-21.5 3.4 0 7.7.9 11.2 1.7l5.2-17.2c-3.6-.7-8.7-.7-12.1-.7M370 698.7c-8.6-6-20.6-8.6-33.5-8.6-20.6 0-34.3 10.3-34.3 26.6 0 13.7 10.3 21.5 28.3 24l8.6.9c9.4 1.7 14.6 4.3 14.6 8.6 0 6-6.9 10.3-18.9 10.3s-21.5-4.3-27.5-8.6l-8.6 13.7c9.4 6.9 22.3 10.3 35.2 10.3 24 0 37.8-11.2 37.8-26.6 0-14.6-11.2-22.3-28.3-24.9l-8.6-.9c-7.7-.9-13.7-2.6-13.7-7.7 0-6 6-9.4 15.5-9.4 10.3 0 20.6 4.3 25.8 6.9zm478.9-8.6c-10.3 0-17.2 5.2-21.5 12v-10.3h-18v82.4h18v-46.4c0-13.7 6-21.5 17.2-21.5 3.4 0 7.7.9 11.2 1.7l5.2-17c-3.5-.9-8.6-.9-12.1-.9m-230 43c0 24.9 17.2 42.9 43.8 42.9 12 0 20.6-2.6 29.2-9.4l-8.6-14.6c-6.9 5.2-13.7 7.7-21.5 7.7-14.6 0-24.9-10.3-24.9-26.6 0-15.5 10.3-25.8 24.9-26.6 7.7 0 14.6 2.6 21.5 7.7l8.6-14.6c-8.6-6.9-17.2-9.4-29.2-9.4-26.6-.1-43.8 18-43.8 42.9m166.5 0v-41.2h-18v10.3c-6-7.7-14.6-12-25.8-12-23.2 0-41.2 18-41.2 42.9s18 42.9 41.2 42.9c12 0 20.6-4.3 25.8-12v10.3h18zm-66.1 0c0-14.6 9.4-26.6 24.9-26.6 14.6 0 24.9 11.2 24.9 26.6 0 14.6-10.3 26.6-24.9 26.6-15.4-.9-24.9-12.1-24.9-26.6m-215.4-43c-24 0-41.2 17.2-41.2 42.9 0 25.8 17.2 42.9 42.1 42.9 12 0 24-3.4 33.5-11.2l-8.6-12.9c-6.9 5.2-15.5 8.6-24 8.6-11.2 0-22.3-5.2-24.9-19.7h60.9v-6.9c.8-26.5-14.7-43.7-37.8-43.7m0 15.5c11.2 0 18.9 6.9 20.6 19.7h-42.9c1.7-11.1 9.4-19.7 22.3-19.7m447.2 27.5v-73.8h-18v42.9c-6-7.7-14.6-12-25.8-12-23.2 0-41.2 18-41.2 42.9s18 42.9 41.2 42.9c12 0 20.6-4.3 25.8-12v10.3h18zm-66.1 0c0-14.6 9.4-26.6 24.9-26.6 14.6 0 24.9 11.2 24.9 26.6 0 14.6-10.3 26.6-24.9 26.6-15.5-.9-24.9-12.1-24.9-26.6m-602.6 0v-41.2h-18v10.3c-6-7.7-14.6-12-25.8-12-23.2 0-41.2 18-41.2 42.9s18 42.9 41.2 42.9c12 0 20.6-4.3 25.8-12v10.3h18zm-66.9 0c0-14.6 9.4-26.6 24.9-26.6 14.6 0 24.9 11.2 24.9 26.6 0 14.6-10.3 26.6-24.9 26.6-15.5-.9-24.9-12.1-24.9-26.6"/><path fill="#ff5a00" d="M364 66.1h270.4v485.8H364z"/><path fill="#eb001b" d="M382 309c0-98.7 46.4-186.3 117.6-242.9C447.2 24.9 381.1 0 309 0 138.2 0 0 138.2 0 309s138.2 309 309 309c72.1 0 138.2-24.9 190.6-66.1C428.3 496.1 382 407.7 382 309"/><path fill="#f79e1b" d="M999.2 309c0 170.8-138.2 309-309 309-72.1 0-138.2-24.9-190.6-66.1 72.1-56.7 117.6-144.2 117.6-242.9S570.8 122.7 499.6 66.1C551.9 24.9 618 0 690.1 0 861 0 999.2 139.1 999.2 309"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1,124 +0,0 @@
MISSING APIs - TO BE IMPLEMENTED BY BACKEND
==============================================
Get User Balance
----------------
Get the current balance of the authenticated user.
Protocol: https
Root Path: api.Fastcheck.store
Type: GET
Path: /balance
HEADER: Authorization - {"sessionID": "1AF3781BF6B94604B771AEA1D44FA63A"}
Request Parameters:
{
}
Response (200-OK):
{
"balance": 150000,
"currency": "RUB"
}
Response (401-ERROR):
{
"message": "not authorized"
}
Get Active FastChecks
---------------------
Get all active (unused) FastChecks created by the current user.
Protocol: https
Root Path: api.Fastcheck.store
Type: GET
Path: /fastcheck/active
HEADER: Authorization - {"sessionID": "1AF3781BF6B94604B771AEA1D44FA63A"}
Request Parameters:
{
}
Response (200-OK):
{
"checks": [
{
"fastcheck": "1234-5678-0001",
"amount": 15000,
"currency": "RUB",
"code": "5864",
"createdAt": "2026-01-19T09:08:18Z",
"expiration": "2026-01-26T09:08:18Z",
"status": "active"
},
{
"fastcheck": "1234-5678-0002",
"amount": 25000,
"currency": "RUB",
"code": "1234",
"createdAt": "2026-01-19T10:15:30Z",
"expiration": "2026-01-26T10:15:30Z",
"status": "active"
}
]
}
Response (401-ERROR):
{
"message": "not authorized"
}
Get FastCheck History
---------------------
Get all used/expired FastChecks (both created and accepted by user).
Protocol: https
Root Path: api.Fastcheck.store
Type: GET
Path: /fastcheck/history
HEADER: Authorization - {"sessionID": "1AF3781BF6B94604B771AEA1D44FA63A"}
Request Parameters:
{
}
Response (200-OK):
{
"checks": [
{
"fastcheck": "1234-5678-0003",
"amount": 5000,
"currency": "RUB",
"type": "created",
"createdAt": "2026-01-15T09:08:18Z",
"usedAt": "2026-01-15T10:20:00Z",
"status": "used"
},
{
"fastcheck": "9876-5432-0100",
"amount": 10000,
"currency": "RUB",
"type": "accepted",
"acceptedAt": "2026-01-14T14:30:00Z",
"status": "used"
}
]
}
Response (401-ERROR):
{
"message": "not authorized"
}
Bank Top-Up Integration (To be provided by bank)
-------------------------------------------------
WHAT WE NEED FROM BANK:
1. Payment page URL or API endpoint to initialize payment
2. Required parameters:
- Amount
- Currency
- Return URL (redirect after payment)
- Callback URL (for payment confirmation webhook)
3. Payment confirmation webhook format
4. Transaction ID for tracking
EXPECTED FLOW:
1. User clicks "Top Up Balance"
2. Frontend redirects to bank payment page (or opens popup)
3. User completes card payment on bank side
4. Bank sends webhook to backend with payment confirmation
5. Backend updates user balance
6. Bank redirects user back to our app
7. Frontend refreshes balance

1
public/visa.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 324.68"><path fill="#1434cb" d="M651.19.5c-70.93 0-134.32 36.77-134.32 104.69 0 77.9 112.42 83.28 112.42 122.42 0 16.48-18.88 31.23-51.14 31.23-45.77 0-79.98-20.61-79.98-20.61l-14.64 68.55s39.41 17.41 91.73 17.41c77.55 0 138.58-38.57 138.58-107.66 0-82.32-112.89-87.54-112.89-123.86 0-12.91 15.5-27.05 47.66-27.05 36.29 0 65.89 14.99 65.89 14.99l14.33-66.2S696.61.5 651.18.5ZM2.22 5.5.5 15.49s29.84 5.46 56.72 16.36c34.61 12.49 37.07 19.77 42.9 42.35l63.51 244.83h85.14L379.93 5.5h-84.94l-84.28 213.17-34.39-180.7c-3.15-20.68-19.13-32.48-38.68-32.48H2.23Zm411.87 0-66.63 313.53h81L494.85 5.5zm451.76 0c-19.53 0-29.88 10.46-37.47 28.73l-118.67 284.8h84.94l16.43-47.47h103.48l9.99 47.47h74.95L934.12 5.5zm11.05 84.71 25.18 117.65h-67.45l42.28-117.65Z"/></svg>

After

Width:  |  Height:  |  Size: 815 B

1
public/wechat-pay.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.7 KiB