Integracijos diegimas

Konsultantams ir atstovams:

Diegimas

  • Į Rivile GAMA\ALL katalogą įrašomi failai:
    • urbo_qr_link.fxp
  • Pardavimo operacijų sąraše aprašomas testavimo klavišas (CTRL+Q):
m.lcNuoroda=""
urbo_qr_link(@lcNuoroda,1.00,"Mokėjimo paskirtis testas")
f_info(m.lcNuoroda,.t.)
  • Pirmą kartą paleidus testavimo klavišą, automatiškai susikuria parametras: URBO_USR.
  • Įvedamos parametro URBO_USR reikšmės:
    • Access Key ir Secret - ši informacija gaunama iš URBO savitarnos portalo.
  • Pardavimo operacijų sąraše paspaudus testavimo klavišą, sėkmės atveju parodoma pilnai suformuota nuoroda, kurią nukopijavus į naršyklę atidaromas dokumento apmokėjimo langas URBO banko puslapyje. Jei viskas veikia tinkamai - testavimo mygtuką galima ištrinti.
  • Susiimportuojama papildoma ataskaita - joje aprašytas nuorodos įkėlimo pavyzdys.
  • Analogiškai pakoreguojamos kliento naudojamos ataskaitos arba el. laiškų tekstai:
    • Įkeliamas nuorodos stulpelis ruošiant duomenis ataskaitos INIT'e
    • Įkeliamas QR ir apmokėjimo tekstas su nuoroda
    • Pridedama sugeneruota nuoroda į el. laiško tekstą

URBO_QR_LINK

urbo_qr_link(@lcNuoroda,lnSuma,lcPaskirtis,[lcLaukas],[lcKodas_op],[lcModulis])
  • lcNuoroda - grąžinama nuoroda arba klaidos pranešimas. Reikia perduoti per @ (Privalomas)
  • lnSuma - nurodoma suma eurais (ne centais). Tipas skaitmeninis (Privalomas)
  • lcPaskirtis - mokėjimo paskirtis, gavus pavedimą bus matoma ši mokėjimo paskirtis. Trumpinama iki 120 simbolių (Privalomas)
  • lcLaukas - laukas kuriame bus saugomas iš URBO gautas nuorodos ID. Jei lauko kodas nenurodomas, tuomet visada bus generuojama nauja apmokėjimo nuoroda. Perdavus šį parametrą privaloma perduoti ir du likusius parametrus lcKodas_op ir lcModulis. Skirtas tik pirkimams ir pardavimams
  • lcKodas_op - pirkimo/pardavimo operacijos numeris. Neprivalomas (privalomas tik tuo atveju jei perduodamas lcLaukas)
  • lcModulis - modulio kodas. PO - pirkimai arba RO - pardavimai. Neprivalomas (privalomas tik tuo atveju jei perduodamas lcLaukas)

Procedūra urbo_qr_link grąžina .T. arba .F., pagal šias reikšmes galime nustatyti ar nuoroda buvo sugeneruota ar ne.

Naudojimo pavyzdys be nuorodos ID išsaugojimo:

 m.lcNuoroda=""
 urbo_qr_link(@lcNuoroda,200.99,"Dokumentas #AAA")
* Kintamajame m.lcNuoroda grąžinama nuoroda arba klaidos pranešimas:
* "https://mip.urbo.lt/payment-link/daf1fe0a-0931-4e8b-8ac4-5b9a11ac1..."

Naudojimo pavyzdys be nuorodos ID išsaugojimo pardavimuose:

m.lcNuoroda=""
urbo_qr_link(@lcNuoroda,i06_suma+i06_suma_pvm,"Dokumentas #"+alltrim(i06_dok_nr))
* Kintamajame m.lcNuoroda grąžinama nuoroda arba klaidos pranešimas:
* "https://mip.urbo.lt/payment-link/daf1fe0a-0931-4e8b-8ac4-5b9a11ac1..."

Naudojimo pavyzdys su nuorodos ID išsaugojimu pardavimuose:

m.lcNuoroda=""
urbo_qr_link(@lcNuoroda,i06_suma+i06_suma_pvm,"Dokumentas #"+alltrim(i06_dok_nr),"i06_aprasymas3",i06_kodas_po,"RO")
* Kintamajame m.lcNuoroda grąžinama nuoroda arba klaidos pranešimas:
* "https://mip.urbo.lt/payment-link/daf1fe0a-0931-4e8b-8ac4-5b9a11ac1..."

Nuorodos ID saugojimas dokumento lauke

Perdavus lcLaukas, į nurodytą dokumento lauką įrašoma nuorodos ID su kontroline suma. Kontrolinė suma skaičiuojama iš apmokamos sumos ir mokėjimo paskirties.

Pakartotinio kvietimo metu kontrolinė suma perskaičiuojama:

  • Sutampa - nuoroda atstatoma iš lauko be kreipimosi į URBO, todėl nauja apmokama užklausa nekuriama,
  • Nesutampa - grąžinama klaida "URBO nuorodos ID ne šio dokumento!". Taip atsitinka, kai dokumentas nukopijuotas su užpildytu lauku arba kai po nuorodos sukūrimo pasikeitė dokumento suma.

Naudojamas laukas turi būti pakankamo ilgio ir nenaudojamas kitiems tikslams. Pavyzdyje naudojamas i06_aprasymas3.

Pavyzdžiai sąskaitoje faktūroje ir el. laiško tekste

Sąskaitoje faktūroje:

Spausdinant ataskaitoje, sugeneruotą nuorodą reikėtų įterpti į ataskaitos duomenis (ataskaitos INIT'e). Pavyzdžiui:

LOCAL lal
lal=ALIAS()

IF TYPE(lal+".payment_link")#"C"
    LOCAL lcNuoroda
    IF !urbo_qr_link(@lcNuoroda,i06_suma+i06_suma_pvm,"Dokumentas #"+alltrim(i06_dok_nr))
        WAIT WINDOW LEFT(m.lcNuoroda,250)
        RETURN .F.
    ENDIF
    IF EMPTY(m.lcNuoroda)
        WAIT WINDOW "Nepavyko sugeneruoti nuorodos"
        RETURN .F.
    ENDIF
    SELECT *, CAST(m.lcNuoroda as M) as payment_link FROM (lal) INTO CURSOR (lal) READWRITE
ENDIF

SELECT (m.lal)
GO TOP

Ataskaitos formoje įkeliama nuoroda. Nuoroda pagal XFRX taisykles aprašoma objekto komentaruose:

#UR A NAME=<Apmokėti>
#UR A HREF=payment_link

Norint ataskaitoje suformuoti QR kodą, komanda paveiksliuko objektui:

bar_kod_gen_qr_full(payment_link,330)

Abiem objektams nurodoma Print When sąlyga:

!EMPTY(payment_link)

payment_w3

Detaliau: bar_kod_gen_qr_full.

El. laiško tekste:

Siunčiant el. laišką sugeneruotą nuorodą reikėtų įterpti į ataskaitos duomenis (ataskaitos INIT'e). Pavyzdžiui:

LOCAL lcNuoroda

IF !urbo_qr_link(@lcNuoroda,i06_suma+i06_suma_pvm,"Dokumentas #"+alltrim(i06_dok_nr))
    WAIT WINDOW m.lcNuoroda
    RETURN .F.
ENDIF

IF EMPTY(m.lcNuoroda)
    WAIT WINDOW "Nepavyko sugeneruoti nuorodos"
    RETURN .F.
ENDIF

m.lcPav="PVM S/F"
m.lcText=[Laba diena,<br><br>]
m.lcText=m.lcText+[Siunčiame Jums PVM Sąskaitą-Faktūrą.<br>]
m.lcText=m.lcText+[Apmokėti galite <a href="]+alltrim(m.lcNuoroda)+[" target="_blank">ČIA</a><br>]
...

IF !f_mail_Chilkat(m.lcE_mail,m.lcPav,,m.lcFile,m.lcText)
...

Kad nuoroda būtų aktyvi el. laiške, privaloma laiško tekstą formatuoti ir siųsti HTML formatu.