{"id":25398,"date":"2016-10-13T11:10:10","date_gmt":"2016-10-13T11:10:10","guid":{"rendered":"https:\/\/dev.railscarma.com\/ways-handling-paypal-refunds-rails\/"},"modified":"2022-09-06T08:28:15","modified_gmt":"2022-09-06T08:28:15","slug":"satt-att-hantera-paypal-aterbetalningsskenor","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/satt-att-hantera-paypal-aterbetalningsskenor\/","title":{"rendered":"S\u00e4tt att hantera PayPal-\u00e5terbetalningar i Rails"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"25398\" class=\"elementor elementor-25398\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-26698b39 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"26698b39\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-649f7882\" data-id=\"649f7882\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-51675260 elementor-widget elementor-widget-text-editor\" data-id=\"51675260\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>PayPal Checkout inkluderar betalningsl\u00f6sningar som str\u00e4cker sig fr\u00e5n enkla till robusta som l\u00e5ter handlarna s\u00e5v\u00e4l som utvecklare v\u00e4lja ett integrationsalternativ som kan vara b\u00e4st l\u00e4mpat f\u00f6r deras webbplats och kunder.<br><strong style=\"font-size: 16px; color: var( --e-global-color-text );\"><br>F\u00f6r att integrera Paypal Payment Gateway m\u00e5ste vi g\u00f6ra f\u00f6ljande:<\/strong><br><\/p>\n<p>\n<strong>1<\/strong>. Har ett PayPal-f\u00f6retag eller ett Premier-konto.<br><strong>2.<\/strong> Skapa en PayPal-app och f\u00e5 en \u00e5tkomsttoken. N\u00e4r vi skapar en PayPal-app genererar PayPal en upps\u00e4ttning OAuth client_id och hemliga nycklar f\u00f6r applikationen. PayPal genererar dessa nycklar f\u00f6r b\u00e5de PayPals sandl\u00e5da och Live-milj\u00f6er. F\u00f6r att f\u00e5 en \u00e5tkomsttoken, skicka in autentiseringsuppgifterna f\u00f6r client-id:secret i auktoriseringshuvudet. Vi anv\u00e4nder \u00e5tkomsttoken f\u00f6r autentisering n\u00e4r vi g\u00f6r REST API-f\u00f6rfr\u00e5gningar.<br><strong>3.<\/strong> F\u00f6r att utf\u00f6ra ett helt\u00e4ckande test av v\u00e5r Express Checkout med In-Context-integrering, skapa b\u00e5de s\u00e4ljar- och k\u00f6parkonton i <strong>PayPal sandl\u00e5da<\/strong> milj\u00f6.<br><a href=\"https:\/\/www.sandbox.paypal.com\/in\/webapps\/mpp\/home\" target=\"_blank\">https:\/\/www.sandbox.paypal.com\/in\/webapps\/mpp\/home<\/a><br><strong>Handlare :<\/strong> V\u00e4lj f\u00f6retagskontotyp och ange en e-postadress och ett l\u00f6senord.<br><strong>K\u00f6pare:<\/strong> V\u00e4lj den personliga kontotypen och ange ett h\u00f6gt PayPal-saldo, till exempel 5000.<\/p>\n<p>N\u00e4r vi har skapat ett Paypal-sandl\u00e5dekonto, klicka sedan p\u00e5 l\u00e4nken &quot;Profil&quot; f\u00f6r det kontot, titta under fliken &quot;API-uppgifter&quot;. Vi kommer att ha f\u00f6ljande information;<\/p>\n<ul style=\"font-family: \" montserrat\",sans-serif;\"=\"\">\n<li><strong>Paypal API anv\u00e4ndarnamn<\/strong><\/li>\n<li><strong>Paypal API-signatur<\/strong><\/li>\n<li><strong>Paypal API-l\u00f6senord<\/strong><\/li>\n<\/ul>\n<p>Obs: N\u00e4r vi \u00e4r redo att g\u00e5 live skulle vi bara anv\u00e4nda inloggningsuppgifterna fr\u00e5n v\u00e5rt riktiga PayPal-konto ist\u00e4llet f\u00f6r de fr\u00e5n v\u00e5rt sandl\u00e5dekonto. Inloggningsuppgifterna finns i omr\u00e5det &quot;Min profil&quot; under den v\u00e4nstra fliken &quot;Mina s\u00e4ljverktyg&quot; under alternativet &quot;API-\u00e5tkomst&quot;<\/p>\n<p><strong>Hur man hanterar Paypal-\u00e5terbetalningar i Rails:<\/strong><\/p>\n<p><strong>Metod 1:<\/strong><\/p>\n<p><strong>Paypal Rest API;<\/strong><\/p>\n<p>F\u00f6r mer komplexa s\u00e4ljarwebbplatser kan direktanrop till PayPals API:er f\u00f6r en Express Checkout-integration vara en mer l\u00e4mplig integration.<br><strong>REST API:er<\/strong> \u2014 Vi kan utveckla en Express Checkout-integration med PayPal REST API:er.<\/p>\n<p>F\u00f6r att integrera Express Checkout med In-Context-fl\u00f6de;<br>https:\/\/developer.paypal.com\/docs\/api\/<br>ELLER<br><strong>PayPal REST API Ruby SDK<\/strong> (paypal-sdk-rest gem):<br>PayPal REST SDK tillhandah\u00e5ller Ruby API:er f\u00f6r att skapa, bearbeta och hantera betalningar.<\/p>\n<p><strong>Installation:<\/strong><br>L\u00e4gg till p\u00e4rlan v\u00e5r applikation, i Gemfile:<\/p>\n<pre><code>p\u00e4rla &#039;paypal-sdk-rest&#039;<\/code><\/pre>\n<p><strong>Och k\u00f6r sedan:<\/strong><\/p>\n<pre><code>$-paketinstallation<\/code><\/pre>\n<p><strong>Konfiguration:<\/strong><\/p>\n<pre><code>skenor g paypal:sdk:install<\/code><\/pre>\n<p><strong>\u00c5terbetalar en transaktion:<\/strong><br>Alla transaktioner vi kan g\u00f6ra en \u00e5terbetalning (b\u00e5de direkta och inh\u00e4mtade betalningar):<\/p>\n<ul style=\"font-family: \" montserrat\",sans-serif;\"=\"\">\n<li>\u00c5terbetala en genomf\u00f6rd direktbetalning (f\u00f6rs\u00e4ljning)<\/li>\n<li>\u00c5terbetala en auktoriserad och inh\u00e4mtad betalning (capture)<\/li>\n<\/ul>\n<p><strong>\u00c5terbetala en genomf\u00f6rd betalning (f\u00f6rs\u00e4ljning):<\/strong><br>Om vi m\u00e5ste \u00e5terbetala en genomf\u00f6rd betalning, eller f\u00f6rs\u00e4ljning, tillhandah\u00e5lla det f\u00f6rs\u00e4ljnings-id som gavs till oss som svar p\u00e5 en genomf\u00f6rd betalning tillsammans med en tom JSON-nyttolast f\u00f6r en full \u00e5terbetalning och f\u00f6r partiella \u00e5terbetalningar, kan vi ist\u00e4llet inkludera ett beloppsobjekt i JSON-nyttolasten .<\/p>\n<pre><code>curl -v https:\/\/api.sandbox.paypal.com\/v1\/payments\/sale\/CARMAXYZC6136044L\/refund -H &quot;Content-Type:application\/json&quot; -H &quot;Authorization: Bearer Access-Token&quot; -d &#039;{} &#039;\n<\/code><\/pre>\n<p>Obs: Vi b\u00f6r ers\u00e4tta alla samtalsspecifika parametrar, s\u00e5som tokens och ID:n, med v\u00e5ra egna.<br><strong>Svarsstatus f\u00f6r \u00e5terbetalningen:<\/strong><\/p>\n<ul style=\"font-family: \" montserrat\",sans-serif;\"=\"\">\n<li><strong>i v\u00e4ntan p\u00e5-<\/strong> \u00c5terbetalningen v\u00e4ntar.<\/li>\n<li><strong>avslutad-<\/strong> \u00c5terbetalningen har slutf\u00f6rts.<\/li>\n<li><strong>misslyckades-<\/strong> \u00c5terbetalningen misslyckades.<\/li>\n<\/ul>\n<p><strong>\u00c5terbetala en inh\u00e4mtad betalning;<\/strong><br>Vi kan ocks\u00e5 \u00e5terbetala en h\u00e4mtad betalning:<\/p>\n<pre><code>API: https:\/\/api.paypal.com\/v1\/payments\/capture\/{capture_id}\/refund<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>Obs: Vi m\u00e5ste tillhandah\u00e5lla ett beloppsobjekt f\u00f6r b\u00e5de hel och partiell \u00e5terbetalning.<\/p>\n<pre><code>curl -v https:\/\/api.sandbox.paypal.com\/v1\/payments\/capture\/CARMAXYZC6136044L\/refund -H &quot;Content-Type:application\/json&quot; -H &quot;Authorization: Bearer Access-Token&quot; -d &#039;{ &quot; amount&quot;: { &quot;currency&quot;: &quot;USD&quot;, &quot;total&quot;: &quot;50,54&quot; }, &quot;description&quot;: &quot;Detta \u00e4r beskrivningen av \u00e5terbetalningen.&quot; }&#039;\n<\/code><\/pre>\n<p>Referens: <a href=\"https:\/\/developer.paypal.com\">https:\/\/developer.paypal.com<\/a><\/p>\n<p><strong>Metod 2:<\/strong><\/p>\n<p><strong>Paypal \u00e5terbetalning genom att anv\u00e4nda Active Merchant Gem:<\/strong><\/p><p><b>ActiveMerchant Integration: <\/b><a href=\"http:\/\/railscasts.com\/episodes\/145-integrating-active-merchant\">http:\/\/railscasts.com\/episodes\/145-integrating-active-merchant<\/a><br><\/p>\n<p>I v\u00e5r ans\u00f6kan;<\/p>\n<pre><code>config\/environment\/development.rb config.after_initialize g\u00f6r ActiveMerchant::Billing::Base.mode = :test ::GATEWAY = ActiveMerchant::Billing::PaypalGateway.new( :login =&gt; &quot;s\u00e4ljare_12298991731&quot;, . l\u00f6senord =&gt; &quot;FXWU58S7KXFC6HBE&quot;, :signature =&gt; &quot;AGjv6SW.mTiKxtkm6L9DcSUCUgePAUDQ3L-kTdszkPG8mRfjaRZDYtSu&quot; ) end<\/code><\/pre>\n<p><strong>\u00c5terbetalar en transaktion:<\/strong><br>Ta en titt p\u00e5 <strong>paypal_common_api.rb<\/strong> fil i Active Merchant Gem;<br><a href=\"https:\/\/github.com\/activemerchant\/active_merchant\/blob\/master\/lib\/active_merchant\/billing\/gateways\/paypal\/paypal_common_api.rb\">https:\/\/github.com\/activemerchant\/active_merchant\/blob\/master\/lib\/active_merchant\/billing\/gateways\/paypal\/paypal_common_api.rb<\/a><\/p>\n<p><strong>1.<\/strong> F\u00f6r ett full \u00e5terbetalningskort noll f\u00f6r beloppet:<\/p>\n<pre><code>gateway.refund noll, &#039;CARMAXYZC6136044L&#039;<\/code><\/pre>\n<p>Detta g\u00f6r automatiskt att :refund_type blir &quot;Full&quot;.<br><strong>2.<\/strong> F\u00f6r en partiell \u00e5terbetalning skicka bara beloppet som vanligt:<\/p>\n<pre><code>gateway.refund 100, &#039;CARMAXYZC6136044L&#039;<\/code><\/pre>\n<pre><code>def refund(money, identification, options = {}) commit &#039;RefundTransaction&#039;, build_refund_request(money, identification, options) end<\/code><\/pre>\n<p><strong>Ex:<\/strong><\/p>\n<pre><code>Gateway.refund(nil,&#039;CARMAXYZC6136044L&#039;) =&gt; Full \u00e5terbetalning.<\/code><\/pre>\n<pre><code>Gateway.refund(798,&#039;CARMAXYZC6136044L&#039;) =&gt; Delvis \u00e5terbetalning.<\/code><\/pre>\n<p>Referens: http:\/\/www.rubydoc.info\/github\/Shopify\/active_merchant\/ActiveMerchant\/Billing\/PaypalCommonAPI<\/p>\n<p><strong><br>Metod 3:<\/strong><\/p>\n<p><strong>Anv\u00e4nder Braintree Gem;<\/strong><\/p>\n<p><strong>Braintree Integration:<\/strong><\/p>\n<ul style=\"font-family: \" montserrat\",sans-serif;\"=\"\">\n<li>Registrera dig f\u00f6r ett Braintree Sandbox-konto.<br><a href=\"https:\/\/www.braintreepayments.com\/sandbox\">https:\/\/www.braintreepayments.com\/sandbox<\/a><\/li>\n<li>F\u00f6lj handledningarna;<br><a href=\"https:\/\/developers.braintreepayments.com\/start\/hello-server\/ruby\">https:\/\/developers.braintreepayments.com\/start\/hello-server\/ruby<\/a><\/li>\n<li>Konfigurera milj\u00f6n och API-uppgifter:\n<pre><code>Braintree::Configuration.environment = :sandbox Braintree::Configuration.merchant_id = &quot;anv\u00e4nd_ditt_handlare_id&quot; Braintree::Configuration.public_key = &quot;anv\u00e4nd_din_public_nyckel&quot; Braintree::Configuration.private_key = &quot;anv\u00e4nd_din_privata_nyckel&quot;<\/code><\/pre>\n<\/li>\n<li>Slutf\u00f6r integrationen och sandl\u00e5detestningen.<\/li>\n<\/ul>\n<p><strong>Krav:<\/strong><\/p>\n<ul style=\"font-family: \" montserrat\",sans-serif;\"=\"\">\n<li>Transaktionsstatus m\u00e5ste regleras eller regleras.<\/li>\n<li>\u00c5terbetalningsbeloppet kan inte vara st\u00f6rre \u00e4n det \u00e5terst\u00e5ende icke-\u00e5terbetalda beloppet f\u00f6r den ursprungliga transaktionen.<\/li>\n<li>Transaktionen kan inte \u00e5terbetalas igen efter att ha blivit helt \u00e5terbetald.<\/li>\n<\/ul>\n<p><strong>\u00c5terbetalar en transaktion:<\/strong><br>F\u00f6r att utf\u00e4rda en \u00e5terbetalning med API:t beh\u00f6ver vi bara k\u00f6ra en Transaction.refund() API-beg\u00e4ran och kr\u00e4ver bara ett transaktions-id f\u00f6r att \u00e5terbetala. Alternativt kan vi skicka ett \u00e5terbetalningsbelopp om det finns ett krav p\u00e5 partiell \u00e5terbetalning, och vi kan skicka ett order_id om det skiljer sig fr\u00e5n det ursprungliga order-ID:t.<\/p>\n<pre><code>result = Braintree::Transaction.refund(&quot;the_transaction_id&quot;)<\/code><\/pre>\n<p>Full \u00e5terbetalning:<\/p>\n<pre><code>resultat = Braintree::Transaction.refund(&quot;CARMAXYZC6136044L&quot;, noll)<\/code><\/pre>\n<p>Delvis \u00e5terbetalning:<\/p>\n<pre><code>resultat = Braintree::Transaction.refund(&quot;CARMAXYZC6136044L&quot;, &quot;40.00&quot;)<\/code><\/pre>\n<p>resultat.framg\u00e5ng?<br>#=&gt; sant<br>resultat.transaktionsbelopp.till_f<br>#=&gt; 40,00<\/p>\n<p>Obs: Endast full \u00e5terbetalning till\u00e5ts f\u00f6r transaktioner som h\u00e5lls i Escrow (Beh\u00e5ll en underhandlares transaktionsmedel tills vi ringer ytterligare ett samtal f\u00f6r att frig\u00f6ra dem). En partiell \u00e5terbetalning av en Escrow-transaktion kommer att leda till ett valideringsfel.<br><a href=\"https:\/\/developers.braintreepayments.com\/guides\/braintree-marketplace\/create\/ruby#holding-funds-in-escrow\">https:\/\/developers.braintreepayments.com\/guides\/braintree-marketplace\/create\/ruby#holding-funds-in-escrow<\/a><\/p>\n<div><strong>LUBAIB CEEJEY<\/strong><\/div>\n<div>Sr Ruby on Rails utvecklare<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-535472ac elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"535472ac\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4b113cb4\" data-id=\"4b113cb4\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3deee2bc elementor-widget elementor-widget-heading\" data-id=\"3deee2bc\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Prenumerera f\u00f6r de senaste uppdateringarna<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6724a327 elementor-widget elementor-widget-shortcode\" data-id=\"6724a327\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t\t\t\t<script type=\"text\/javascript\">\n\t\t\t\t\t\tvar gCaptchaSibWidget;\n                        var onloadSibCallbackInvisible = function () {\n\n                            var element = document.getElementsByClassName('sib-default-btn');\n                            var countInvisible = 0;\n                            var indexArray = [];\n                            jQuery('.sib-default-btn').each(function (index, el) {\n                                if ((jQuery(el).attr('id') == \"invisible\")) {\n                                    indexArray[countInvisible] = index;\n                                    countInvisible++\n                                }\n                            });\n\n                            jQuery('.invi-recaptcha').each(function (index, el) {\n                                grecaptcha.render(element[indexArray[index]], {\n                                    'sitekey': jQuery(el).attr('data-sitekey'),\n                                    'callback': sibVerifyCallback,\n                                });\n                            });\n                        };\n\t\t\t\t\t<\/script>\n\t\t\t\t\t                <script src=\"https:\/\/www.google.com\/recaptcha\/api.js?onload=onloadSibCallbackInvisible&render=explicit\" async defer><\/script>\n\t\t\t\t\n\t\t\t<form id=\"sib_signup_form_1\" method=\"post\" class=\"sib_signup_form\" action=\"\">\n\t\t\t\t<div class=\"sib_loader\" style=\"display:none;\"><img\n\t\t\t\t\t\t\tsrc=\"https:\/\/www.railscarma.com\/wp-includes\/images\/spinner.gif\" alt=\"lastare\"><\/div>\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_action\" value=\"subscribe_form_submit\">\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_id\" value=\"1\">\n                <input type=\"hidden\" name=\"sib_form_alert_notice\" value=\"Please fill out this field\">\n                <input type=\"hidden\" name=\"sib_form_invalid_email_notice\" value=\"Your email address is invalid\">\n                <input type=\"hidden\" name=\"sib_security\" value=\"d7f7626ab9\">\n\t\t\t\t<div class=\"sib_signup_box_inside_1\">\n\t\t\t\t\t<div style=\"\/*display:none*\/\" class=\"sib_msg_disp\">\n\t\t\t\t\t<\/div>\n                                            <div id=\"sib_captcha_invisible\" class=\"invi-recaptcha\" data-sitekey=\"6LdikOAaAAAAAJ6SWrrKVQrtw7TQpQAEnv0HS0G3\"><\/div>\n                    \t\t\t\t\t<p class=\"sib-email-area\">\r\n    <label class=\"sib-email-area\"><\/label>\r\n    <input type=\"email\" class=\"sib-email-area\" name=\"email\" required=\"required\" placeholder=\"E-postadress\">\r\n<\/p>\r\n<p class=\"sib-NAME-area\">\r\n    <label class=\"sib-NAME-area\"><\/label>\r\n    <input type=\"text\" class=\"sib-NAME-area\" name=\"NAME\" placeholder=\"namn\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"Prenumerera\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"sv\"\/><\/form>\n\t\t\t<style>\n\t\t\t\tform#sib_signup_form_1 p.sib-alert-message {\n    padding: 6px 12px;\n    margin-bottom: 20px;\n    border: 1px solid transparent;\n    border-radius: 4px;\n    -webkit-box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n}\nform#sib_signup_form_1 p.sib-alert-message-error {\n    background-color: #f2dede;\n    border-color: #ebccd1;\n    color: #a94442;\n}\nform#sib_signup_form_1 p.sib-alert-message-success {\n    background-color: #dff0d8;\n    border-color: #d6e9c6;\n    color: #3c763d;\n}\nform#sib_signup_form_1 p.sib-alert-message-warning {\n    background-color: #fcf8e3;\n    border-color: #faebcc;\n    color: #8a6d3b;\n}\n\t\t\t<\/style>\n\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t  <div class=\"related-post slider\">\r\n        <div class=\"headline\">relaterade inl\u00e4gg<\/div>\r\n    <div class=\"post-list owl-carousel\">\r\n\r\n            <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Kaminari Gem\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/kaminari-parla\/?related_post_from=37277\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"kaminari p\u00e4rla\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Kaminari Gem\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/kaminari-parla\/?related_post_from=37277\">\r\n        Kaminari Gem  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Varf\u00f6r anst\u00e4lla Ruby on Rails-utvecklare 2026?\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ror\/varfor-anlita-utvecklare-av-ruby-on-rails\/?related_post_from=30627\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"varf\u00f6r anlita utvecklare av ruby on rails 2022\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Varf\u00f6r anst\u00e4lla Ruby on Rails-utvecklare 2026?\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ror\/varfor-anlita-utvecklare-av-ruby-on-rails\/?related_post_from=30627\">\r\n        Varf\u00f6r anst\u00e4lla Ruby on Rails-utvecklare 2026?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Betydelsen av mjukvaruarkitektur vid utveckling av f\u00f6retagsmjukvara\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ror\/vikten-av-mjukvaruarkitektur-i-foretagsutveckling-av-programvara\/?related_post_from=36250\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"Betydelsen av mjukvaruarkitektur vid utveckling av f\u00f6retagsmjukvara\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Betydelsen av mjukvaruarkitektur vid utveckling av f\u00f6retagsmjukvara\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ror\/vikten-av-mjukvaruarkitektur-i-foretagsutveckling-av-programvara\/?related_post_from=36250\">\r\n        Betydelsen av mjukvaruarkitektur vid utveckling av f\u00f6retagsmjukvara  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ruby IDE: De b\u00e4sta IDE:erna f\u00f6r Ruby on Rails Development\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ror\/ruby-ide-de-basta-ideerna-for-ruby-on-rails-utveckling\/?related_post_from=36125\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"B\u00c4STA ID\u00c9ER F\u00d6R UTVECKLING AV RUBY ON RAIL\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Ruby IDE: De b\u00e4sta IDE:erna f\u00f6r Ruby on Rails Development\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ror\/ruby-ide-de-basta-ideerna-for-ruby-on-rails-utveckling\/?related_post_from=36125\">\r\n        Ruby IDE: De b\u00e4sta IDE:erna f\u00f6r Ruby on Rails Development  <\/a>\r\n\r\n        <\/div>\r\n      \r\n  <\/div>\r\n\r\n  <script>\r\n      <\/script>\r\n  <style>\r\n    .related-post {}\r\n\r\n    .related-post .post-list {\r\n      text-align: left;\r\n          }\r\n\r\n    .related-post .post-list .item {\r\n      margin: 10px;\r\n      padding: 10px;\r\n          }\r\n\r\n    .related-post .headline {\r\n      font-size: 14px !important;\r\n      color: #999999 !important;\r\n          }\r\n\r\n    .related-post .post-list .item .post_thumb {\r\n      max-height: 220px;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n          }\r\n\r\n    .related-post .post-list .item .post_title {\r\n      font-size: 14px;\r\n      color: #000000;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .post-list .item .post_excerpt {\r\n      font-size: 12px;\r\n      color: #3f3f3f;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .owl-dots .owl-dot {\r\n          }\r\n\r\n      <\/style>\r\n      <script>\r\n      jQuery(document).ready(function($) {\r\n        $(\".related-post .post-list\").owlCarousel({\r\n          items: 2,\r\n          responsiveClass: true,\r\n          responsive: {\r\n            0: {\r\n              items: 1,\r\n            },\r\n            768: {\r\n              items: 2,\r\n            },\r\n            1200: {\r\n              items: 2,\r\n            }\r\n          },\r\n                      rewind: true,\r\n                                loop: true,\r\n                                center: false,\r\n                                autoplay: true,\r\n            autoplayHoverPause: true,\r\n                                nav: true,\r\n            navSpeed: 1000,\r\n            navText: ['<i class=\"fas fa-chevron-left\"><\/i>', '<i class=\"fas fa-chevron-right\"><\/i>'],\r\n                                dots: false,\r\n            dotsSpeed: 1200,\r\n                                                    rtl: false,\r\n          \r\n        });\r\n      });\r\n    <\/script>\r\n  <\/div>","protected":false},"excerpt":{"rendered":"<p>PayPal Checkout includes payment solutions ranging from simple to robust that let the merchants as well as developers choose an integration option that can be the best-suited for their website and customers.In order to integrate Paypal Payment Gateway, we need to do the following: 1. Have a PayPal business or Premier account.2. Create a PayPal &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/ruby-regex-match-guide-with-examples\/\"> <span class=\"screen-reader-text\">Ruby Regex Match Guide (2026) med exempel<\/span> L\u00e4s mer \u00bb<\/a><\/p>","protected":false},"author":1,"featured_media":31850,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384],"tags":[],"class_list":["post-25398","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ways of Handling PayPal Refunds in Rails | Rails Application Development<\/title>\n<meta name=\"description\" content=\"PayPal Checkout includes payment solutions ranging from simple to robust that let the merchants as well as developers choose an integration option that\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/satt-att-hantera-paypal-aterbetalningsskenor\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ways of Handling PayPal Refunds in Rails | Rails Application Development\" \/>\n<meta property=\"og:description\" content=\"PayPal Checkout includes payment solutions ranging from simple to robust that let the merchants as well as developers choose an integration option that\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/satt-att-hantera-paypal-aterbetalningsskenor\/\" \/>\n<meta property=\"og:site_name\" content=\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RailsCarma\/\" \/>\n<meta property=\"article:published_time\" content=\"2016-10-13T11:10:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-06T08:28:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Paypal_Refunds.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@railscarma\" \/>\n<meta name=\"twitter:site\" content=\"@railscarma\" \/>\n<meta name=\"twitter:label1\" content=\"Skriven av\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Ber\u00e4knad l\u00e4stid\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minuter\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"Ways of Handling PayPal Refunds in Rails\",\"datePublished\":\"2016-10-13T11:10:10+00:00\",\"dateModified\":\"2022-09-06T08:28:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/\"},\"wordCount\":806,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Paypal_Refunds.jpg\",\"articleSection\":[\"Technical Articles\"],\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/\",\"url\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/\",\"name\":\"Ways of Handling PayPal Refunds in Rails | Rails Application Development\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Paypal_Refunds.jpg\",\"datePublished\":\"2016-10-13T11:10:10+00:00\",\"dateModified\":\"2022-09-06T08:28:15+00:00\",\"description\":\"PayPal Checkout includes payment solutions ranging from simple to robust that let the merchants as well as developers choose an integration option that\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/#breadcrumb\"},\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Paypal_Refunds.jpg\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Paypal_Refunds.jpg\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ways of Handling PayPal Refunds in Rails\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.railscarma.com\/#website\",\"url\":\"https:\/\/www.railscarma.com\/\",\"name\":\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"description\":\"RailsCarma is a Ruby on Rails Development Company in Bangalore. We specialize in Offshore Ruby on Rails Development based out in USA and India. Hire experienced Ruby on Rails developers for the ultimate Web Experience.\",\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.railscarma.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sv-SE\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"width\":200,\"height\":46,\"caption\":\"RailsCarma\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RailsCarma\/\",\"https:\/\/x.com\/railscarma\",\"https:\/\/www.linkedin.com\/company\/railscarma\/\",\"https:\/\/myspace.com\/railscarma\",\"https:\/\/in.pinterest.com\/railscarma\/\",\"https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"S\u00e4tt att hantera PayPal-\u00e5terbetalningar i Rails | Rails applikationsutveckling","description":"PayPal Checkout inkluderar betalningsl\u00f6sningar som str\u00e4cker sig fr\u00e5n enkla till robusta som l\u00e5ter handlarna s\u00e5v\u00e4l som utvecklare v\u00e4lja ett integrationsalternativ som","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/satt-att-hantera-paypal-aterbetalningsskenor\/","og_locale":"sv_SE","og_type":"article","og_title":"Ways of Handling PayPal Refunds in Rails | Rails Application Development","og_description":"PayPal Checkout includes payment solutions ranging from simple to robust that let the merchants as well as developers choose an integration option that","og_url":"https:\/\/www.railscarma.com\/sv\/blogg\/tekniska-artiklar\/satt-att-hantera-paypal-aterbetalningsskenor\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2016-10-13T11:10:10+00:00","article_modified_time":"2022-09-06T08:28:15+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Paypal_Refunds.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"Skriven av":"admin","Ber\u00e4knad l\u00e4stid":"5 minuter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"Ways of Handling PayPal Refunds in Rails","datePublished":"2016-10-13T11:10:10+00:00","dateModified":"2022-09-06T08:28:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/"},"wordCount":806,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Paypal_Refunds.jpg","articleSection":["Technical Articles"],"inLanguage":"sv-SE","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/","url":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/","name":"S\u00e4tt att hantera PayPal-\u00e5terbetalningar i Rails | Rails applikationsutveckling","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Paypal_Refunds.jpg","datePublished":"2016-10-13T11:10:10+00:00","dateModified":"2022-09-06T08:28:15+00:00","description":"PayPal Checkout inkluderar betalningsl\u00f6sningar som str\u00e4cker sig fr\u00e5n enkla till robusta som l\u00e5ter handlarna s\u00e5v\u00e4l som utvecklare v\u00e4lja ett integrationsalternativ som","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/#breadcrumb"},"inLanguage":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/"]}]},{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Paypal_Refunds.jpg","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Paypal_Refunds.jpg","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/ways-handling-paypal-refunds-rails\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"Ways of Handling PayPal Refunds in Rails"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - Ruby on Rails Development Company specialiserat p\u00e5 Offshore Development","description":"RailsCarma \u00e4r ett Ruby on Rails Development Company i Bangalore. Vi \u00e4r specialiserade p\u00e5 Offshore Ruby on Rails Development baserat i USA och Indien. Anst\u00e4ll erfarna Ruby on Rails-utvecklare f\u00f6r den ultimata webbupplevelsen.","publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.railscarma.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sv-SE"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RailsCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","width":200,"height":46,"caption":"RailsCarma"},"image":{"@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RailsCarma\/","https:\/\/x.com\/railscarma","https:\/\/www.linkedin.com\/company\/railscarma\/","https:\/\/myspace.com\/railscarma","https:\/\/in.pinterest.com\/railscarma\/","https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg"]},{"@type":"Person","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21","name":"administration","image":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/posts\/25398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/comments?post=25398"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/posts\/25398\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/media\/31850"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/media?parent=25398"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/categories?post=25398"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/sv\/wp-json\/wp\/v2\/tags?post=25398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}