, hvordan til at fælde tilbagevendende betalinger,,,,, 11,,,,,,,,, 18,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss ud. det er sandsynligt, at der på et tidspunkt, vil du ønsker at gennemføre tilbagevendende eller tegning betalinger til stabiliserings - og associeringsaftaler eller andre tjenesteydelser.heldigvis, brug giver de værktøjer, vi skal bruge til at gennemføre en fuldt integreret abonnement betaling løsning.,,,,,, hvad det er, vi vil opbygge, note:, jeg bruger laravel i denne forelæsning, men du kan anvende disse koncepter til andre sprog og rammer.,, vi skal fælde paypal acceptere abonnement betalinger og konfigurere vores øjeblikkelig betaling meddelelse (ipn) til at lytte.når vi fuldstændig skiltet op komponent, skal vi se på annulleringsproceduren via paypal er api - grænseflade.jeg begynder med en barebones laravel app med en simpel registrering og login, og vi lægger i de elementer, vi skal indføre abonnement betalinger, som vi fortsætter gennem tutor.,,, trin 1: oprettelse af dit abonnement knapper,,, brug er en skik område, som vi kan bruge til at passere brugerens id,,, før vi begynder, har du en paypal - sager.det er gratis, men du må have en virksomhed tegner sig for at gennemføre abonnement betalinger på din hjemmeside.,, brug har flere typer af knapper, som vi kan bruge, herunder køb nu, tegne, og automatisk fakturering.i dag ser vi på de tegner sig for knap.abonnement knapper tillade dig at sætte fakturering beløb, samt de tilbagevendende betalinger periode.du kan også arrangeret en prøveperiode og lad paypal skabe brugerkonto, når de ping -.,,, ind til din paypal - konto og navigere, profil - > min sælger præferencer.se dig for, brug knapper, afsnit og udvælge, abonnementer, fra ned.vær sikker på at udfylde resten af oplysningerne.,,, anbefaler jeg, at "skabe brugernavne og passwords har brug for kunder" kasse, og udvælge "brug min sikre merchant kontoidentifikation" mulighed.,,, vi skal give mulighed for at underskrive en fri højde og opgradere senere.,, skabe din badge og kopiere den genererede kode, du bruger det i din ansøgning.,, at supplerende oplysninger, som vi forbinder abonnementer på konti, vi må vide, hvem der foretager en betaling.den letteste måde at gøre det på er at måle den e - mail - adresse på paypal transaktion til e - mail konto, som anvendes til at underskrive i vores anvendelse.det er ikke sikkert, men for mange mennesker bruger forskellige e - mail - adresser.så vi er nødt til at passere brugerens id fra vores ansøgning til paypal. heldigvis paypal er en skik område, som vi kan bruge til at give brugeren er. det har en grænse på 256 tegn.så jeg skal bruge en json struktur, der gør det muligt for os at give supplerende oplysninger, bør vi skal.,, < input type = "skjulte" navn = "vane" værdi = "{{json_encode (array ('user_id = >): user() - > id)}}" >,, sørg for at se på den fuldstændige liste over godkendte html variabler.,,, trin 2: klargøring din ansøgning, er det nødvendigt først at etablere vores betalinger tabel, hvor vi gemmer vores transaktioner.lad os skabe det med følgende kolonner:,,, id: en automatisk forøgelse heltal og vores primære nøgle.,, txn_id: vores transaktion id, der paypal - vil give os.sæt dette som en varchar.,, user_id, vi bruger den til at fælde vores forhold til brugeren tabel, et heltal, vil gøre, paypal_id: paypal profil id, som vi bliver nødt til at håndtere annulleringer senere.sæt dette som en varchar.,, created_at: vi vil bruge det til at se, hvor transaktionen er gennemført og starte abonnement.,,, også tilføje, tegning, kolonne til din, bruger, tabel.jeg sætter det som et heltal, med henblik på flere niveauer: et, to og tre for at frigøre yderligere egenskaber.jeg har også gået videre og har skabt den model, der vil give os mulighed for at interagere med betalinger tabel.,,, trin 3: skrive din evne til at lytte, brug giver en enkel løsning for at meddele os, hvor en betaling er blevet forarbejdet, de kalder det øjeblikkelig betaling anmeldelser (ipn).for at drage fordel af ipn, er vi nødt til at skabe en ipn til at lytte til vores anmodning.de lytter validerer oplysningerne, kommer den ind i vores betalinger tabel, og sæt tegningen niveau for brugeren,.,, men vi behøver ikke at genopfinde hjulet, takket være den her klasse.vi bruger den, ipnlistener, klasse til hurtigt at kontrollere de data, og vi kan behandle dette stik det ind i vores database.med laravel, vi kan lægge klasse i vores biblioteker folder, der gør det autoload for os.,, skabe en ny registeransvarlige eller rute og tilføje følgende kode:,, $lytter = nye ipnlistener(); prøve ($verificerede = $lytter - > processipn();} fangst (undtagen $e) (afgang (0)} hvis ($verificerede) (//ipn svar var "bekræftet"} andre (//ipn svar var "syge"}, ringede jeg til min journal, ipn. sundhedsprogrammet, og jeg vil kort det, /ipn,.glem ikke, at paypal vil efter denne url. så hvis du bruger http /resten verber, sæt den op i overensstemmelse hermed.herfra kan vi behandle vores oplysninger:,, $lytter = nye ipnlistener(); prøve ($verificerede = $lytter - > processipn();} fangst (undtagen $e) {tilbage log: fejl ($e - > getmessage())} hvis ($verificerede data = $_post ($) og $user_id = json_decode ($data ['custom ']) - > user_id. $) = ($data ['mc_gross_1 ". = = 10).2: 1 $txn = system ('txn_id = > $data ['txn_id'], user_id = > $user_id, paypal_id = > $data ['subscr_id "'tegning" = > $abonnement, udløber = > dato ('y-m-d h: i: s, strtotime (+ 1 måned'))); betaling: skabe ($txn)} andre (log: fejl ('transaction ikke verificeret)}, i denne kode, vi dekode json gik til vores skik, at os let adgang til brugerens id. vi så tegningen plan baseret på transaktionens størrelse og opbevarer det i databasen.vi har også log eventuelle fejl ved hjælp af laravel er log - klasse.det kan også være rart at sende en kvittering for brugeren, men jeg vil overlade det til dig.,,, trin 4: for ipn, næste, vi skal sætte ipn og oprette paypal skal spore vores til at lytte.fordi paypal er admin - panelet kan være svære at navigere, jeg har omfattet følgende screenshots til at hjælpe dig.gå til profil - > salg af præferencer:,,, så se til øjeblikkelig betaling meddelelser:,,, klik, vælge ipn indstillinger:,,, og så ind i url til din lytter:,,,,,,, løntrin 5: at få din api brugernavn, kodeord, og underskrift, mens vi er i instrumentbrættet, er det værd at blive vores api - papirer, før vi løser vores annulleringsproceduren.gå til profil - > salg af præferencer:,,, se efter, api adgang:,,, udvælge, valgmulighed 2:,,, anmode om en api underskrift:,,, og har noteret deres mandater:,,,, trin 6: håndtering af aflysninger, må du have en virksomhed tegner sig for at gennemføre abonnement betalinger.,,,, note:, får du brug for en ssl certifikat til at håndtere aflysninger eller paypal med kaste en fejl.,, at give den bedste bruger, er det sandsynligt, at du ønsker at håndtere aflysninger i din ansøgning eller en tjeneste.brug giver et par api - grænseflader, der giver os mulighed for at gøre dette: nvp - eller sæbe.jeg vil anbefale med nvp.,, brug er dokumentation synes at gøre ting, men nvp (navn værdi par) er hovedsagelig en url indkodet snor, som vi kan krybe.,, at den metode, vi er interesseret i, er managerecurringpaymentsprofilestatus.vi kan ændre den tegning, ved at vælge en af følgende tre foranstaltninger:,,, annullere: kun aktive eller suspenderes abonnementer kan annulleres.valget af denne handling forhindrer brugerne fra igen på et senere tidspunkt, suspendere,: kun aktive abonnementer kan suspenderes.denne foranstaltning gør det muligt for brugerne at reaktivere deres abonnement senere.,, genoplive,: kun suspenderet abonnementer kan reaktiveres, instating tegning.,,, vi skal bruge det annullere foranstaltninger, som støtter knapper skabe en helt ny tegning, bør brugeren ønsker at aktivere på et senere tidspunkt.So our request would look something like this:, ,$input = Input::all(); $req = array( 'USER' => 'YOUR_API_USER', 'PASSWORD' => 'YOUR_API_PASSWORD', 'SIGNATURE' => 'YOUR_API_SIGNATURE', 'VERSION' => '76.0', 'METHOD' => 'ManageRecurringPaymentsProfileStatus', 'PROFILEID' => urlencode($input['paypal_id']), 'ACTION' => 'Cancel', 'NOTE' => 'User cancelled on website', ); $ch = curl_init(); //Swap these if you're testing with the sandbox //curl_setopt($ch, CURLOPT_URL, 'https://api-3t.sandbox.paypal.com/nvp'); curl_setopt($ch, CURLOPT_URL, 'https://api-3t.paypal.com/nvp'); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPE- falsk); curl_setopt ($ch, curlopt_ssl_verifyhost, falske); curl_setopt ($ch, curlopt_returntransfer, 1); curl_setopt ($ch, curlopt_post, 1); curl_setopt ($ch, curlopt_postfields, http_build_query ($req)); curl_exec ($ch); curl_close ($ch); tilbage omdirigere: til ('settings') - > med ('cancelled, sande), kan vi nu let opsige abonnement, men af en eller anden grund paypal valgt at ikke sende en ipn anmodning.det er ikke et problem, som vi har en app til også at omfatte en, udløber, kolonne.så vi kan tjekke det område, for at fastslå, om brugeren er tegnet.,,, trin 7: spiller i sandkassen,, brug er en sandkasse, så vi kan teste vores gennemførelse.hvis du ikke har brugt den før, du bliver nødt til at skabe en fri højde.der vil du være i stand til at teste med flere brugere og transaktioner for at sikre, at deres kode virker som forventet.,, vi skal til at teste vores evne til at lytte, at sikre, at den fungerer korrekt, uden at udføre egentlige transaktioner.før vi gør noget i sandkassen, er vi nødt til at forme vores ipn lytter til ping sandkassen i stedet for levende server. $lytter - > use_sandbox = sandt;, gå over til paypal sandkasse, login, klik, test værktøjer, til venstre og åbne op for ipn - simulator.,,, input url af din til at lytte og udvælge, udtrykke dig, fra den ned.du kan bruge de fleste af de manglende oplysninger, men glem ikke at putte din json i skik område mod nederst på siden.,,, trin 8: kontrol af tegningen,, så vi har oprettet vores abonnement, og som gør det muligt for brugerne til at annullere den tjeneste nu hvordan vi tjekke det?laravel gør det nemt, og metoden svarer på mange sprog og rammer.jeg er nødt til at tilføje en metode til min bruger, model, der giver os adgang til tegning af laravel er alle klasse:,, offentlig funktion subscription() {tilbage betaling: hvor ('user_id "," = "): user() - > id) - > hvor ('expires", ">, dato ('y-m-d h: i: s, time())) - > første (array ('subscription, udløber, paypal_id", "txn_id ')), kan vi nu få adgang til denne og kontrol inden for vores kontrollører og synspunkter meget let.for eksempel:,, <?php $under =): user() - > subscription(); hvis ($under & & $sub - > abonnement = = 1) (echo '- du er den standard - planen "} elseif ($under & & $sub - > abonnement = = 2) (echo' - du er den præmie, plan;} andre (echo 'du er ikke tegnet «)?>,,,, jeg håber, at denne forelæsning har givet dem en idé om, hvor nemt det er at oprette tilbagevendende eller tegning af betalinger i deres ansøgninger.brug ikke er den eneste betaling processor, men det er et af de mest anerkendte og udbredt,.,, du kan tilføje indtægter, betalinger påmindelser og annullering meddelelser til at bygge en fuldt integreret løsning.