Ceļvedis un ieskats

Idempotenta partnera API automatizācija: AI klientu, atslēgu un kredītu nodrošināšana bez dublētām blakusparādībām

Partneru API automatizācija visbiežāk neizdodas pēc pirmā pieprasījuma: noildze, dublēti tīmekļa aizķeres notikumi, vienlaikus darbinieki un naudas parsēšanas kļūdas. Veidojiet nodrošināšanas un kredītu darbplūsmas, izmantojot ilgstošas ​​darbības, stabilas idempotences atslēgas, precīzu decimāldaļu apstrādi un saskaņošanu.

Reģistrācijas darbinieks izveido klientu grupu, HTTP pieprasījuma noildze un darba izpildītājs mēģina vēlreiz ar jaunu pieprasījumu. Tagad vienam un tam pašam klientam var būt divas grupas, divas API atslēgas vai lokālais datu bāzes ieraksts, kas norāda uz nepareizo augšpuses objektu. Maksājumu tīmekļa aizķere tiek saņemta minūti vēlāk, tiek piegādāta divas reizes un divreiz tiek ieskaitīta klientam, jo tīmekļa aizķeres apstrādātājs katru piegādi uzskata par jaunu biznesa notikumu.

Tas ir īstais Partner API automatizācijas kļūmes režīms. Pirmais veiksmīgais zvans reti ir grūtā daļa. Sarežģītākā daļa ir uzņēmējdarbības nolūku saglabāšana, kad tīkli neizdodas, darbinieki avarē, lietotāji veic dubultklikšķi, maksājumu pakalpojumu sniedzēji atkārtoti mēģina izmantot tīmekļa aizķeri, un finanšu dati vēlāk ir jāsaskaņo.

Praktiskā shēma ir vienkārša: uztveriet katru partnera API darbību, kas mainās, kā ilgstošu biznesa darbību, nevis kā aktivizējiet un aizmirstiet HTTP pieprasījumu. Tas nozīmē vietējo operāciju ierakstu glabāšanu, idempotences atslēgu apzinātu izmantošanu, naudas precīzu parsēšanu, tīmekļa aizķeru asinhronu apstrādi un nezināmu rezultātu saskaņošanu pirms kompensējošu izmaiņu izdošanas.

Atsevišķi fakti, ieteikumi un prognozes

Fakti

Model Gate partneru API dokumentācijā ir norādīts, ka POST, PATCH un DELETE pieprasījumiem ir nepieciešama Idempotency-Key, kas pēc noildzes mēģinājumiem atkārtoti izmanto to pašu atslēgu, un idempotences ieraksti tiek glabāti 7 dienas.

Tajā pašā dokumentācijā ir norādīts, ka naudas vērtības un ierobežojumi ir JSON decimāldaļas. Tās ir jāapstrādā kā precīzas decimālvērtības vai virknes, nevis jākonvertē, izmantojot bināros peldošā komata veidus.

Partneru API nodrošina pārvaldības un pārskatu sniegšanas virsmas bilancei, audita notikumiem, grupām, atslēgām, pieprasījumiem un darījumiem. Audita notikumi reģistrē veiksmīgas pārvaldības mutācijas ar tādiem laukiem kā pieprasījuma ID, darbība, mērķis, avota IP, statuss, droši metadati un UTC laikspiedols.

Svītrotu dokumentu idempotences atslēgas, lai droši vēlreiz mēģinātu izveidot un atjaunināt darbības. Tās tīmekļa aizķeres norādījumi arī brīdina, ka galapunkti var saņemt vienu un to pašu notikumu vairāk nekā vienu reizi, un iesaka reģistrēt apstrādāto notikumu ID un veikt apstrādi asinhroni.

AWS un Azure norādījumi pastiprina vienu un to pašu izplatīto sistēmu noteikumu: atkārtoti mēģinājumi ir noderīgi, taču mutācijas operācijām ir nepieciešams zvanītāja nodrošināts pieprasījuma identifikators vai līdzvērtīgs atkārtojamības līgums, lai serveris varētu saglabāt zvanītāja nolūku.

Ieteikumi

Izmantojiet vienu lokālo operāciju virsgrāmatu nodrošinājumam, atslēgu izveidei, tēriņu limita izmaiņām, kredīta papildināšanai, maka pārbaudēm un ar tīmekļa aizķeri saistītai izpildei. Padariet virsgrāmatu par integrācijas ilgstošu patiesības avotu nodomiem, mēģinājumiem, augšupējiem pieprasījumu ID, iegūtajiem mērķa ID un saskaņošanas stāvokli.

Ģenerējiet idempotences atslēgas no stabila biznesa nolūka, ja nolūks ir stabils. Atkārtoti izmantojiet to pašu atslēgu pēc taimauta vai nezināma servera iznākuma. Ģenerējiet jaunu atslēgu tikai tad, ja uzņēmējdarbības darbība ir apzināti jauna.

Apstrādājiet tīmekļa aizķeres divās fāzēs: ātri pārbaudiet un saglabājiet notikuma identitāti, pēc tam veiciet biznesa darbību asinhroni ar idempotena darbinieka starpniecību.

Prognozes

Tā kā arvien vairāk aģentūru un SaaS platformu tālāk pārdod AI piekļuvi, atbalsta problēmas tiks pārvietotas no pamata API savienojuma uz saskaņošanu: klientu nodrošinājuma dublikāti, apstrīdēti kredīti, neatbilstoši maka atlikumi un neskaidras audita pēdas. Integrācijas, kas saglabā pastāvīgus lokālo darbību ierakstus, būs vieglāk atbalstāmas nekā integrācijas, kas paļaujas tikai uz HTTP atbildēm un žurnāliem.

Vietējā partnera operāciju virsgrāmatas izveide

Darbību virsgrāmatā uzņēmējdarbības operācija tiek reģistrēta pirms pirmā partnera API pieprasījuma nosūtīšanas. Tam ir jābūt draudzīgam pievienošanai, klientam var veikt vaicājumus, kā arī pietiekami stingrai, lai neļautu diviem darbiniekiem veikt vienu un to pašu darbību vienlaikus.

Noderīga shēma izskatās šādi:

partner_operations
- Operation_id // iekšējais UUID
- external_customer_id // jūsu klienta, nomnieka vai konta ID
- darbība // izveidot_grupu, izveidot_atslēgu, iestatīt_limit, top_up_credit
- idempotency_key // nosūtīts partneru API mutācijas pieprasījumiem
- request_fingerprint // metodes, ceļa un jēgpilna pamatteksta kanoniskā jaukšana
- model_gate_request_id // X-Request-ID vai līdzvērtīgs atbildes identifikators, ja pieejams
- target_public_id // grupas ID, atslēgas ID, darījuma ID vai cits iegūtais objekts
- statuss // gaida, izdevies, neizdevās_atkārtot mēģināt, failed_final, saskaņošana
- mēģinājumu_skaits
- pēdējā_kļūdas_kods
- pēdējā_kļūdas_ziņojums
- izveidots_at
- atjaunināts_at
- bloķēts_līdz

Svarīgs ierobežojums ir unikalitāte uzņēmējdarbības nolūka dēļ. Piemēram, external_customer_id + action + signup_version var būt unikāls sākotnējai nodrošināšanai. Otrajai apzinātai papildināšanai nevajadzētu saskarties ar pirmo; tai ir jābūt citai darbības identitātei un idempotences atslēgai.

Reģistrācijas plūsmai izveidojiet vienu vecākoperāciju, piemēram, provision_customer, pēc tam izsekojiet pakārtotās darbības parametriem create_group, create_key un set_initial_limit. Tas ļauj lietotāja interfeisam rādīt vienu klientam orientētu statusu, bet aizmugursistēma joprojām precīzi nosaka, kura ārējā mutācija ir iestrēgusi.

Izveidojiet idempotences atslēgas no biznesa nolūka

Idempotences atslēgām ir jābūt pietiekami stabilām, lai tās izturētu atkārtotus mēģinājumus, un pietiekami specifiskām, lai izvairītos no divu dažādu darbību sabrukšanas vienā. Deterministisks formāts palīdz atbalsta un saskaņošanas komandām apsvērt sistēmu.

create-group-for-customer:{customer_id}:{signup_version}
Create-key-for-customer:{customer_id}:{group_id}:{key_purpose}:{version}
set-spend-limit:{customer_id}:{group_id}:{limit_policy_version}
papildināšana:{klienta_id}:{maksājuma_notikuma_id}:{virsgrāmatas_ieraksta_id}

Izmantojiet to pašu idempotences taustiņu, ja darbība ir tāda pati un iepriekšējais rezultāts nav zināms. Piemēri: klienta taimauts, savienojuma atiestatīšana pēc pieprasījuma pamatteksta nosūtīšanas, darbinieka avārija pirms atbildes saglabāšanas vai 5xx, kurā serveris, iespējams, jau ir pabeidzis mutāciju.

Ja mainās uzņēmējdarbības nolūks, izmantojiet jaunu idempotences atslēgu. Klients, kurš iegādājas otrā kredīta paketi, ir jauns papildinājums. Administrators, kas palielina tēriņu ierobežojumu no 100,00 uz 250,00 pēc atsevišķa apstiprinājuma, ir jauna darbība. Ja pieprasījuma pamatteksts būtiski mainās, var būt nepieciešama jauna atslēgas versija arī izlabotai reģistrācijas veidnei.

Saglabājiet pieprasījuma pirksta nospiedumu blakus atslēgai. Ja kods mēģina atkārtoti izmantot to pašu idempotences atslēgu ar citu lietderīgo slodzi, pirms partnera API izsaukšanas neizdodas lokāli. Šī pārbaude konstatē smalkas kļūdas veidņu migrēšanas un daļēju atkārtotu mēģinājumu laikā.

Nodrošiniet klientus kā valsts iekārtu

Nodrošināšanas darbiniekam ir jāpāriet uz nepārprotamiem stāvokļiem, nevis jāpieņem, ka viens darījums var aptvert jūsu datu bāzi, partneru API un pakārtotās norēķinu sistēmas.

gaida_izveidot_grupu
  - izveidot vietējo operāciju ierakstu
  - nosūtīt grupas izveides pieprasījumu ar Idempotency-Key
  - veikala pieprasījuma ID un grupas publiskais ID

grupa_izveidota_atslēga_gaida
  - izveidot atslēgas operāciju ierakstu
  - nosūtīt atslēgas izveides pieprasījumu ar Idempotency-Key
  - saglabājiet atslēgu metadatus un noslēpumu atbilstoši jūsu drošības politikai

key_created_limit_pending
  - izveidot tēriņu limita darbības ierakstu
  - nosūtīt limita atjauninājumu, izmantojot Idempotency-Key
  - saglabājiet iegūto politikas versiju vai mērķa ID

nodrošināts
  - atzīmējiet klientu gatavu
  - izdod iekšējā audita notikumu
  - paziņot produktu sistēmām

Šī stāvokļa iekārta ļauj pārdzīvot avārijas. Ja darbinieks nomirst pēc grupas izveides, bet pirms atslēgas saglabāšanas, aizvietojošais darbinieks var pārbaudīt operāciju virsgrāmatu, atkārtoti izmantot to pašu idempotences atslēgu un turpināt. Ja grupa pastāv augšpus, bet vietējā saglabāšana neizdevās, saskaņošana var noteikt mērķa atrašanās vietu, izmantojot grupas, atslēgas, transakcijas un audita virsmas, nevis akli izveidot citu objektu.

Apstrādājiet naudu kā decimāldatus

Kredīti, maka atlikumi, tēriņu ierobežojumi, izlietojuma kopsummas un darījumu summas nedrīkst tikt iekļautas binārā peldošā komata veidā. Tāda vērtība kā 0,10 ir finanšu vērtība, nevis mērījums. Saglabājiet sākotnējo JSON decimāldaļu virkni pie ievades robežas un aritmētikas vajadzībām konvertējiet tikai precīzā decimāldaļas veidā.

JavaScript nerakstiet norēķinu loģiku ap numuru. Izmantojiet decimālo bibliotēku vai saglabājiet vērtības kā virknes, līdz tās sasniedz īpašu naudas moduli. Programmā Python izmantojiet Decimal no virknēm, nevis pludiņiem. Datu bāzēs izmantojiet fiksētas skalas ciparu kolonnas, kur nepieciešama aritmētika, un teksta kolonnas, kurās auditam ir noderīga precīza augšpuses attēlojuma saglabāšana.

// Slikti: bināra peldošā komata konvertēšana
const limit = Skaitlis(apiResponse.spend_limit);

// Labāk: precīza decimālā robeža
const limit = new Decimal(apiResponse.spend_limit);

Lietojiet to pašu noteikumu salīdzinājumiem. Tēriņu limita pārbaude, kas noapaļo vienu pusi līdz centiem un otru pusi, lai nodrošinātu pakalpojumu sniedzēja precizitāti, var nepareizi bloķēt vai atļaut pieprasījumus. Definējiet vienu iekšējo precizitātes politiku, dokumentējiet to un pārbaudiet robežvērtības ap nulli, minimālās papildināšanas summas un ierobežojumu pārejas.

Padariet Web aizķeres pārsūtīšanu garlaicīgu

Tīmekļa aizķeres apdarinātājiem nevajadzētu veikt sarežģītu nodrošinājumu iekļauti. Apdarinātāja uzdevums ir autentificēt notikumu, saglabāt tā identitāti un ātri atgriezties. Darbiniekam, kurš var droši mēģināt vēlreiz, ir jāizpilda.

payment_webhook_events
- nodrošinātājs
- notikuma_id
- notikuma_veids
- saņemts_at
- payload_hash
- apstrādes_statuss
- saistītā_klienta_id
- saistītās_operācijas_id
- pēdējā_kļūda

Ievietojiet unikālu ierobežojumu parametram provider + event_id. Ja viens un tas pats notikums ierodas divreiz, atgriezieties veiksmīgi pēc tam, kad esat apstiprinājis, ka tas jau ir saglabāts vai apstrādāts. Neieskaitiet maku divreiz, jo piegāde notika divas reizes.

Izpildes darbiniekam ir jāizveido vai jāatrod atbilstošā darbība top_up_credit. Tās idempotences atslēga var ietvert maksājuma notikuma ID un jūsu iekšējā virsgrāmatas ieraksta ID. Ja darbinieks avarē pēc tam, kad Partner API papildināšana ir veiksmīga, bet pirms vietējā stāvokļa atjaunināšanas, nākamajā mēģinājumā atkārtoti tiek izmantota tā pati atslēga un pēc tam tiek saskaņots iegūtais darījums.

Mēģiniet vēlreiz kārtulas mutācijas partneru API izsaukumiem

Atkārtotiem mēģinājumiem ir nepieciešami noteikumi. Bez tiem atkārtota mēģinājuma kods kļūst par blakusefektu ģeneratoru.

Tīkla taimauta, savienojuma atiestatīšanas un nezināmu 5xx rezultātu gadījumā vēlreiz mēģiniet to pašu pieprasījumu ar to pašu Idempotency-Key dokumentētajā saglabāšanas logā. Katru mēģinājumu ierakstiet operāciju virsgrāmatā.

429 atbildēm ievērojiet Retry-After, ja tas ir nodrošināts, un saglabājiet to pašu idempotences atslēgu tai pašai darbībai. Likmes ierobežošana nemaina uzņēmējdarbības nolūku.

Ja rodas validācijas kļūdas, nemēģiniet vēlreiz automātiski. Atzīmējiet operāciju par neveiksmīgu, parādiet konkrēto kļūdu un pieprasiet izlabotu darbību ar jaunu pieprasījuma cipardadziņu, ja mainās paredzētā slodze.

Ja rodas idempotences atslēgas konflikts, ko izraisa mainīta kravnesība, pārtrauciet. Tā ir vietēja kļūda vai nedrošs atkārtots mēģinājums. Neģenerējiet jaunu atslēgu automātiski, ja vien uzņēmējdarbības darbība nav nepārprotami jauna un to apstiprina darbplūsma.

Pirms kompensācijas saskaņojiet nezināmus rezultātus

Pēc nezināma iznākuma drošākais nākamais solis parasti nav kompensējoša mutācija. Vispirms pajautājiet, kas noticis.

Izmantojiet operāciju virsgrāmatu, lai atrastu idempotences atslēgu, pieprasītu pirksta nospiedumu un pēdējo zināmo pieprasījuma ID. Pēc tam pārbaudiet atbilstošās partneru API virsmas: grupu un atslēgu sarakstus nodrošināšanai, darījumus kredīta papildināšanai, maka stāvokļa atlikumu, lietojuma pieprasījumu ierakstus un pārvaldības mutāciju audita notikumus.

Praktiskā saskaņošanas secība ir šāda:

  1. Atkārtoti ielādējiet vietējās darbības ierakstu ar bloķēšanu.
  2. Atkārtoti mēģiniet veikt sākotnējo mutāciju ar to pašu idempotences atslēgu, ja joprojām atrodas saglabāšanas logā un pieprasījuma pirksta nospiedums atbilst.
  3. Ja atkārtots mēģinājums neatrisina stāvokli, veiciet vaicājumu attiecīgajā sarakstā vai iegūstiet galapunktus, izmantojot klientu metadatus, grupu ID, atslēgu ID, darījumu ID vai laikspiedolus.
  4. Pārskatiet audita notikumus, lai noskaidrotu veiksmīgas pārvaldības mutācijas, kas saistītas ar pieprasījuma ID, darbību, mērķi un UTC laikspiedolu.
  5. Atjauniniet vietējo darbību uz veiksmīga, failed_final vai nepieciešama saskaņošana ar pierādījumiem.
  6. Izdodiet kompensējošu mutāciju tikai pēc iepriekšējā stāvokļa apstiprināšanas un jaunas kompensācijas darbības ierakstīšanas.

7 dienu idempotences saglabāšanas logs ir noderīgs parastajiem atkārtotā mēģinājuma logiem, taču tas nav uzskaites arhīvs. Saglabājiet pastāvīgu vietējo uzskaiti par atbalstu, finansēm un aizkavētiem strīdiem.

Runbook for Stuck States

gaida_izveidot_grupu

Pārbaudiet, vai pastāv operācijas ieraksts un vai ir nosūtīta idempotences atslēga. Ja pieprasījums, iespējams, ir sasniedzis partnera API, mēģiniet vēlreiz ar to pašu atslēgu. Ja nav pierādījumu, ka pieprasījums ir nosūtīts, nosūtiet sākotnējo pieprasījumu un saglabājiet iegūto pieprasījuma ID.

group_created_key_pending

Apstipriniet grupas mērķa ID lokāli un augšup. Neveidojiet otru grupu. Izveidojiet vai vēlreiz mēģiniet taustiņu darbību ar savu idempotences atslēgu.

key_created_local_save_failed

Tas ir jutīgs pret drošību, jo API atslēgas noslēpumi bieži tiek rādīti tikai vienu reizi. Ja noslēpums netika saglabāts saskaņā ar politiku, atzīmējiet atslēgu lokāli nelietojamu, atsauciet vai pagrieziet to, veicot tiešu darbību, un izveidojiet nomaiņas atslēgu ar jaunu biznesa nolūku.

toup_requested_unknown

Ja iespējams, mēģiniet vēlreiz papildināt ar to pašu idempotences atslēgu. Pēc tam saskaņojiet darījumus un maka atlikumu. Neizsniedziet otro papildināšanu tikai tāpēc, ka tika zaudēta pirmā atbilde.

webhook_received_processing_failed

Saglabājiet tīmekļa aizķeres notikumu atzīmētu kā saņemtu un neizpildītu. Pēc iemesla novēršanas atkārtojiet to ar darbinieka starpniecību. Unikālais notikumu ieraksts novērš dublikātu izpildi.

nepieciešama saskaņošana

Piešķiriet darbību iekšējai atbalsta rindai ar pieprasījuma ID, idempotences atslēgu, klienta ID, mērķa ID, laikspiedoliem un pēdējām kļūdām. Manuālajai pārskatīšanai ir jāatjaunina tas pats darbības ieraksts, nevis jāizveido atsevišķa privāta taka.

Pārbaudes kontrolsaraksts

  • Dublikātu reģistrēšanās pogu klikšķi vienam un tam pašam klientam izveido vienu grupu un vienu paredzēto atslēgu.
  • Strādnieka avārija pēc veiksmīgas iepriekšējās darbības, bet pirms vietējās saglabāšanas atsākšanas bez dublētām blakusparādībām.
  • HTTP taimauts pirms atbildes pamatteksta tiek apstrādāts, atkārtoti mēģinot to pašu idempotences atslēgu.
  • Maksājumu tīmekļa aizķeres dublikāts nerada dublikātu kredīta papildināšanu.
  • Ārpus pasūtījuma maksājumu tīmekļa aizķere un nodrošināšanas uzdevums saplūst ar pareizo klienta stāvokli.
  • 429 atbilde ar Retry-After aizkavē atkārtotu mēģinājumu, nemainot darbības identitāti.
  • Idempotences atslēgas atkārtota izmantošana ar mainītu lietderīgo slodzi neizdodas lokāli.
  • Decimālvērtības ap 0.01, 0.10, 100.00 un tēriņu limita robežas nenoapaļo negaidīti.
  • Revīzijas un notikumu saskaņošana var izskaidrot, kurš un kad mainīja grupu, atslēgu vai ierobežojumu.
  • Darbības, kas vecākas par idempotences saglabāšanas logu, tiek saskaņotas, izmantojot vietējos ierakstus un partneru API pārskatu virsmas, nevis aklo atkārtošanu.

Izmaiņas

Deterministiskās idempotences atslēgas atvieglo atkārtotus mēģinājumus un izmeklēšanu, taču tām ir jāietver pietiekami daudz uzņēmējdarbības konteksta, lai izvairītos no atslēgas atkārtotas izmantošanas patiesi jaunam nolūkam.

Lokālā operāciju virsgrāmata palielina shēmu un darbplūsmas sarežģītību, taču tā nodrošina integrāciju par ilgstošu patiesības avotu, kad tīkla izsaukumi, tīmekļa aizķeres un datu bāzes rakstīšana neizdodas dažādos laikos.

Ātra atgriešanās no tīmekļa aizķeres pārsūtīšanas samazina pakalpojumu sniedzēja atkārtotu mēģinājumu skaitu, taču tai ir nepieciešama uzticama rinda, atkārtošanas rīki un uzraudzība, lai apstrādes kļūmes būtu redzamas.

Stingras pieprasījuma pirkstu nospiedumu pārbaudes novērš nejaušu atslēgas atkārtotu izmantošanu ar dažādām lietderīgajām slodzēm, taču tās piespiež tiešu versiju veidošanu, kad mainās reģistrēšanās noklusējuma iestatījumi vai ierobežojuma veidnes.

Saskaņošana, izmantojot bilanci, darījumu, grupu, atslēgu un audita galapunktus, ir lēnāka nekā uzticēšanās sākotnējai atbildei. Tas ir arī drošāks ceļš pēc nezināmiem rezultātiem.

Apstrīdams secinājums

Uzticama partnera API automatizācija ir grāmatvedības un operāciju problēma, tāpat kā HTTP integrācijas problēma. Sāciet ar ilgstošu biznesa operāciju definēšanu: izveidojiet klientu grupu, izveidojiet atslēgu, mainiet limitu, papildiniet kredītu, saskaņojiet maku un apstrādājiet tīmekļa aizķeri. Katrai darbībai piešķiriet stabilas idempotences atslēgu, pieprasījuma pirkstu nospiedumu, statusa iekārtu un pastāvīgu lokālo ierakstu.

Pēc tam padariet katram darbiniekam garlaicīgu: iegūstiet operāciju, nosūtiet precīzu paredzēto pieprasījumu, atkārtoti izmantojiet to pašu idempotences atslēgu pēc nezināmiem rezultātiem, precīzi parsējiet decimāldaļas un saskaņojiet pirms kompensācijas. Šis dizains nenovērsīs visas kļūmes, taču tas padarīs kļūdas izskaidrojamas, izmēģināmas un pārbaudāmas bez dublētām blakusparādībām, kas saskaras ar klientiem.

Saistīta informācija

FAQ

Bieži uzdotie jautājumi

Vai katram partnera API pieprasījumam ir jāizmanto idempotences atslēga?
Mutējošiem partnera API pieprasījumiem, piemēram, POST, PATCH un DELETE, saskaņā ar dokumentēto līgumu ir jāizmanto idempotences atslēga. Tikai lasīšanas pieprasījumiem parasti nav nepieciešama tāda pati apstrāde, taču to rezultātus var izmantot saskaņošanas laikā.
Vai vienu idempotences atslēgu var atkārtoti izmantot vairāku klientu papildināšanai?
Nē. Atkārtoti izmantojiet to pašu atslēgu tikai vienas un tās pašas uzņēmējdarbības atkārtotas darbības mēģinājumiem. Otra apzināta papildināšana ir jauna biznesa operācija, un tai jāsaņem jauns operācijas ieraksts un idempotences atslēga.
Kam jānotiek pēc taimauta grupas izveides laikā?
Ierakstiet taimautu, saglabājiet sākotnējo darbību gaidīšanas režīmā vai atkārtojiet to un atkārtojiet to pašu grupas izveides pieprasījumu ar to pašu idempotences atslēgu saglabāšanas logā. Ja rezultāts paliek neskaidrs, saskaņojiet grupu ierakstus un audita notikumus, pirms izveidojat kaut ko citu.
Kāpēc naudu glabāt kā decimāldaļas vai precīzas decimāldaļas?
Maka atlikumi, kredīta summas, izlietojuma kopsummas un tēriņu ierobežojumi ir finanšu dati. Binārā peldošā komata konvertēšana var radīt noapaļošanas kļūdas, tāpēc ievadīšanai ir jāsaglabā decimāldaļas vai jāpārvērš tās precīziem decimāldaļskaitļiem.