{"id":15675116,"url":"https://github.com/pat/pippin","last_synced_at":"2025-05-06T23:41:41.436Z","repository":{"id":2154833,"uuid":"3100087","full_name":"pat/pippin","owner":"pat","description":"A PayPal Rails Engine that handles IPNs","archived":false,"fork":false,"pushed_at":"2012-11-13T05:33:56.000Z","size":115,"stargazers_count":14,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-31T04:05:00.733Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"RangelReale/osin","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pat.png","metadata":{"files":{"readme":"README.textile","changelog":"HISTORY","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-01-04T06:13:39.000Z","updated_at":"2022-02-06T10:23:37.000Z","dependencies_parsed_at":"2022-09-14T04:30:39.234Z","dependency_job_id":null,"html_url":"https://github.com/pat/pippin","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pat%2Fpippin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pat%2Fpippin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pat%2Fpippin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pat%2Fpippin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pat","download_url":"https://codeload.github.com/pat/pippin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252788376,"owners_count":21804280,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T15:56:55.770Z","updated_at":"2025-05-06T23:41:41.414Z","avatar_url":"https://github.com/pat.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"h1. Pippin\n\nPippin is a Rails Engine for processing PayPal IPN requests. It automatically adds a route to your Rails application that validates and processes IPNs.\n\nIf you want to do something with those IPN objects (and I recommend you do), then all you need to do is attach a subscriber to the notification, and that'll fire as each valid IPN is received.\n\n*Using Rails 3.0?* Then you better jump back to the \"0.1.1 release\":https://github.com/pat/pippin/tree/v0.1.1 of this library, which does not use ActiveSupport::Notifications.\n\nh2. Installation and Usage\n\nJust add it to your Gemfile:\n\n\u003cpre\u003e\u003ccode\u003egem 'pippin', '~\u003e 1.0.0'\u003c/code\u003e\u003c/pre\u003e\n\nThen somewhere (perhaps in an initializer), subscribe to the notifications:\n\n\u003cpre\u003e\u003ccode\u003eActiveSupport::Notifications.subscribe('received.ipn') do |*args|\n  event = ActiveSupport::Notifications::Event.new(*args)\n  ipn   = event.payload[:ipn]\n  # use IPN data\n  ipn.params # =\u003e {'business' =\u003e 'email@domain.com', 'txn_type' =\u003e ...}\nend\u003c/code\u003e\u003c/pre\u003e\n\nThere are also notifications fired using the txn_type parameter as the prefix, if you wish to subscribe to certain types:\n\n\u003cpre\u003e\u003ccode\u003eActiveSupport::Notifications.subscribe('subscr_signup.ipn') do |*args|\n  event = ActiveSupport::Notifications::Event.new(*args)\n  ipn   = event.payload[:ipn]\n\n  # A subscription sign up has happened. Do something!\nend\u003c/code\u003e\u003c/pre\u003e\n\nAny parameters with the suffix '_date' in their name will automatically be translated from PayPal's ugly date string to an appropriate Time object.\n\nWhen constructing your form that redirects people to PayPal, you'll want to set the @notify_url@ parameter to use Pippin's URL that has automatically been added to your routes: @'pippin/ipns'@.\n\nh2. Contributing\n\nContributions are very much welcome - but keep in mind the following:\n\n* Keep patches in a separate branch.\n* Write tests for your patches.\n* Don't mess with the version or history file. I'll take care of that when the patch is merged in.\n\nh2. Credits\n\nCopyright (c) 2012, Pippin is developed and maintained by Pat Allan, and is released under the open MIT Licence.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpat%2Fpippin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpat%2Fpippin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpat%2Fpippin/lists"}