Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Amar Resic 4 posts 95 karma points
    Nov 06, 2020 @ 11:47
    Amar Resic
    0

    Any payment provider for DIBS Easy?

    Hi there.

    First of all, loving Vendr, great package.

    I see there is a payment provider for Dibs D2, but according to Nets this is being shut down, and is no longer available for us as a new customer with Nets.

    The option for us with Nets is Dibs Easy. Anyone aware of a payment provider for Vendr using Dibs Easy? Or is there a plan to make one?

  • Søren Gregersen 355 posts 1468 karma points MVP 2x c-trib
    Nov 06, 2020 @ 14:37
    Søren Gregersen
    0

    Hi Amar,

    If you take a look at how the Dibs D2 provider was made, would it not be possible to create a Dibs Eeasy provider?

    Vendr is build in UK, so the usage of Dibs is rather limited in that area, so I would be surprised if there are any plans. The Dibs D2 provider was also build by the community.

  • Matt Brailsford 2934 posts 15510 karma points MVP 7x c-trib
    Nov 09, 2020 @ 15:17
    Matt Brailsford
    100

    Hi Amar,

    This is one currently being worked on by a community member, Bjarne https://github.com/bjarnef/vendr-payment-provider-dibs/tree/feature/dibs-easy

    Unfortunately though he has hit a bit of a showstopper as Dibs Easy only supports a single returnUrl parameter which makes it impossible to know if the return to the site is due to a successful payment, or because of canceling out of the process. This means that whenever you return to the site, you won't know whether to show a success notice, or a canceled notice. Additionally, as payment finalization happens async via webhook, it's not like you can just check the status of the order either, as it may be a few seconds or even minutes (depending on the network) before we are notified of successful payments.

    Bjarne has raised this with Nets, however they have told him this wouldn't be looked at till March next year.

    If you are unable to use D2 then I'd strongly suggest you speak with nets and ask them to review this issue as a matter of urgency.

    As soon as this issue can be resolved, we should be able to get a Dibs Easy provider out pretty quickly.

    Matt

  • Søren Gregersen 355 posts 1468 karma points MVP 2x c-trib
    Nov 09, 2020 @ 16:14
    Søren Gregersen
    0

    Hi Matt,

    As pointed out, no new D2 accounts will be created, and Easy is the replacement :/

    best, Søren

  • Matt Brailsford 2934 posts 15510 karma points MVP 7x c-trib
    Nov 09, 2020 @ 16:20
    Matt Brailsford
    0

    Yea, this is why it's urgent that they address this and why we suggest others keep pushing them to get the fix in place. We've had a few people asking, but right now their API isn't compatible. Continue/Cancel URL registration is a pretty common pattern in payment providers, including in their own D2 so not sure why it wasn't implemented for Dibs Easy.

    Matt

  • Bo Jacobsen 430 posts 1809 karma points
    14 days ago
    Bo Jacobsen
    0

    Hi Matt.

    Does the acceptet answer mean that its working now?

  • Bjarne Fyrstenborg 1181 posts 3440 karma points MVP 4x c-trib
    14 days ago
    Bjarne Fyrstenborg
    0

    Hi Bo

    Yes, it is working, but it might need some additional testing. You can follow the progress in the PR here: https://github.com/vendrhub/vendr-payment-provider-dibs/pull/12

    Previous it had some issues, because both a successful payment and a cancelled payment via the "go back" link in the payment window, both triggered the payment.checkout.completed webhook event, so when getting the response from the webhook, we had no way to know if the payment was actually cancelled or successful.

    I have been in touch with DIBS/Nets a lot regarding this, and suggested we could have both the existing payment.checkout.completed and payment.checkout.cancelled and also a payment.checkout.failed like other payment gateways have.

    However at the time of this writing we still only have the payment.checkout.completed (unless they haven't documented new webhooks).

    However they have changes the cancelled payment, so it no longer trigger the payment.checkout.completed (I would say this was a breaking change), but anyway this is already released).

    Instead cancelled payments would return to the webshop with a status=cancel querystring, which should rely on Referrer-Policy.

    I got the following explaining from Nets here: https://github.com/vendrhub/vendr-payment-provider-dibs/pull/12#issuecomment-778838684

    I have also updated the payment provider to support the new PriceAdjustment entity in Vendr v1.4.0, so it should work with discounts, gift cards on custom discounts/fees, e.g. a deposit fee, but I haven't fully tested this.

    /Bjarne

  • Bo Jacobsen 430 posts 1809 karma points
    1 week ago
    Bo Jacobsen
    0

    Hi Bjarne.

    Ive also been in touch with NETS with the same issue. We have some D2 we need to change to Easy.

    I havent testet it yet, but i was told by NETS that they got a cancel and return url you can set. Would that help?

  • Bjarne Fyrstenborg 1181 posts 3440 karma points MVP 4x c-trib
    1 week ago
    Bjarne Fyrstenborg
    0

    I haven't heard of a specific cancel url, but they may refer to the Referrer-Policy header.

    Payment gateways like e.g. Stripe, Reepay and Adyen has a configuration option in their admin tools to configurate, where the webhook event should POST the response to - the callback URL (ProcessCallback method).

    Here is an example for Stripe: https://vendr.net/docs/payment-providers/stripe/1-1-0/stripe-checkout/getting-started/configuring-stripe/#webhook

    DIBS Easy doesn't handle this same way, but the callback URL is sent as part of the payment request.

    Unfortunately their documentation is lacking from recent updates and especially the documentation on the HostedPaymentWindow is limited.

    /Bjarne

  • Bo Jacobsen 430 posts 1809 karma points
    1 week ago
    Bo Jacobsen
    0

    Hi Bjarne.

    I looked into the mail i got from DIBS (now NETS). The cancelUrl can only be used in the hosted payment window (which make sense, i guess). It should be set the same place where you set the returnUrl. So that would be in the "checkout" object. They send me these 2 links https://tech.dibspayment.com/node4555edit/checkout-introduction and https://tech.dibspayment.com/easy/api/paymentapi

    Can you use that for anything?

  • Bjarne Fyrstenborg 1181 posts 3440 karma points MVP 4x c-trib
    1 week ago
    Bjarne Fyrstenborg
    0

    Hi Bo

    Yes, I could try the cancelUrl property, but pretty hard to know about this as developer, when it hasn't been documented. It may be a hidden gem that we magically should know about :)

    Furthermore the webhook has been updated wiht headers (previous it only had eventName, url and authorization), but yet nothing about the use of it and valid values. https://tech.dibspayment.com/easy/api/paymentapi#webhooks

    Now it has only been a year since I first raised the issue to Nets and told them a lot of times to update the documentation.

    /Bjarne

  • Bo Jacobsen 430 posts 1809 karma points
    1 week ago
    Bo Jacobsen
    0

    Hi Bjarne.

    I agree. They need better documentation and also better support mail response times.

    Its proberbly something they added later and forgot to document.

    Did you know that the api also require the order items? I did not know that, but was told by their support that its a requirement. In my opinion that should be handled by the shop and not by the payment provider.

    "order":{  
       "items":[  
          {  
             "reference":"Reference 001",
             "name":"Test product 001",
             "quantity":1,
             "unit":"units",
             "unitPrice":5000,
             "taxRate":100,
             "taxAmount":50,
             "grossTotalAmount":"5000",
             "netTotalAmount":"5000"
          },
          {  
             "reference":"discount",
             "name":"discount",
             "quantity":1,
             "unit":"units",
             "unitPrice":0,
             "taxRate":0,
             "taxAmount":0,
             "grossTotalAmount":"-1000",
             "netTotalAmount":"-1000"
          },
    
       ]
    }
    
  • Bjarne Fyrstenborg 1181 posts 3440 karma points MVP 4x c-trib
    1 week ago
    Bjarne Fyrstenborg
    0

    Hi Bo

    I will try with the cancelUrl and see if it has any effect. Hopefully they will update the documentation, so developers know how to integrate with DIBS Easy.

    It seems the focus has more been on the embedded checkout option, but not much on the hosted payment window.

    Yes, you are right DIBS Easy require the order items to be set, which I already have configurated, but not all payment gateways require this, but for some acquirers like Klarna the do, e.g. in Adyen it isn't required, but if is if using Klarna: https://github.com/vendrcontrib/vendr-payment-provider-adyen

    I just tried generating a payment link using cancelUrl and it actually seems to redirect to this, when clicking "go back" from payment window.

    Need to test it further now.

    Do you have any further knowledge about the webhook headers? It has been added to the documentation, but nothing about what is used for. The authorization property is already returned as a header in the webhook notification event.

    /Bjarne

  • Bo Jacobsen 430 posts 1809 karma points
    1 week ago
    Bo Jacobsen
    0

    Hi Bjarne.

    I think they updatet the webhook documentation again. So i guess you have to make a webhook for each event you want to get a server to server call.

    notifications - Used to get the status of a transaction (optional)

    webhooks - List of webhooks the merchant wants to register for the payment. Maximum number of webhooks is 32.

    eventName - Input the event you want to listen for

    • payment.created (When a payment is created)
    • payment.checkout.completed (When Checkout is completed)
    • payment.charge.failed (When a charge has failed)
    • payment.refund.failed (When a refund has not gone through)
    • payment.cancel.created (When a reservation has been canceled)

    url - The callback is sent to this url on the merchant site. Must be https. Maximum length is 256 characters.

    authorization - Authorization header of the callback sent to the merchant site will be set to this value. You may choose whatever key you want as long as it fits the format described in this section. Format: * 8 to 64 characters * "a-z," "A-Z", "0-9" and "-" (regex: [a-zA-Z0-9-])

    headers - I guess you can set custom headers here, that they return to you. But i dont know.

    "notifications":{  
          "webHooks":[  
             {  
                "eventName":"string",
                "url":"string",
                "authorization":"string",
                "headers": [
                   {
                      "string": "string"
                   },
                   {
                      "string": "string"
                   }
                ]
             }
          ]
       }
    

    One thing i just found out is that there aint no way to set an errorUrl atm, only cancelUrl and returnUrl. They said they are working on it (whatever that means)

  • Bjarne Fyrstenborg 1181 posts 3440 karma points MVP 4x c-trib
    1 week ago
    Bjarne Fyrstenborg
    0

    The documentation looks pretty much the same as previous. The cancelUrl is working yet not documented.

    Only the headers on webhook events was added some time ago, but not documented furhter. I wonder what would happen if sending authorization headers since authorization property already is returned as header in the response.

    The payment provider is already using the payment.checkout.completed webhook event.

    Regarding capture, refund and cancel it is currently using the POST endpoints for these, but works well also if manage the actions from DIBS Easy portal, since the GET is checking payment status, but I guess it should work using the webhook events as well.

    /Bjarne

  • Bjarne Fyrstenborg 1181 posts 3440 karma points MVP 4x c-trib
    1 week ago
    Bjarne Fyrstenborg
    0

    One of the major issues I also have with DIBS Easy is the lack of supported currencies, which may be a show stopper to some businesses, for example a webshop selling products in Denmark and United Kingdom and therefore use DKK and GBP.

    However DIBS Easy only support a few currencies: NOK, SEK, DKK & EUR as mentioned here: https://tech.dibspayment.com/easy/api/datastring-parameters

    If trying to use GBP the payment request with simple fail.

    Compared to DIBS D2 it supported more currencies - most important probably GBP and USD https://tech.dibspayment.com/D2/Toolbox/Currency_codes

    It may not be important to all webshops, but definitely something to consider, when choosing a payment gateway.

    /Bjarne

Please Sign in or register to post replies

Write your reply to:

Draft