-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
⚠️ The plugin will be discontinued soon ⚠️ #50
Comments
Sorry to hear that and thanks for your effort. We are in a similar situation now where we need to integrate payment through hyperpay. We currently rely on webview implementation of COPYandPAY, this has its own drawbacks of course. So I wanted to ask you if you can clarify how did you manage to integrate the mobile sdk. I am specifically asking about this part of the documentation For iOS
For Android
How one can actually have access to these resources ? |
I was in your situation and the WebView in a mobile app seemed so wrong to me, which was the motivation behind creating this plugin. I genuinely wish to get co-maintainers who can keep this project going, I would be happy to resume supporting it. It's implemented, both SDKs are bundled with the plugin and you don't need to do any of these steps, check the Getting Started guide here. The last update was regarding 3DS (check the merged PR here), and it's supposedly working on the client side as I tested the last time, but in my case, the backend always rejected the payment, I'm not fully sure whether it's a backend issue or some bug in the SDK. I tried contacting HypertPay and we haven't gotten to any solution. As of the time of writing this comment, the plugin is up to date with the latest mobile SDK from HyperPay. |
I was not asking about the Flutter package itself, rather I was asking about where did you manage to pull the SDK from? if I were to try to develop my own dart wrapper around the native implementation. I understand that this is already what the package is doing but unfortunately I have not been able to get it to work refer to this. So I decided to look deeper into the native implementation since our current webview implementation is delivering poor UX and it became more apparent that we should swap the implementation as soon as possible. It is interesting what you said about the situation where the payment gets executed from the client but for some reason it fails, we actually ran in a similar situation when we tried to serve a custom payment template (not using the script directly) and the payment would fail without any kind of useful feedback. As I am now in a situation similar to yours in the past. I have the motivation to investigate this further, in fact I have to get to the bottom of this but I am faced with this blackbox where the doc says I have to add the SDK while not pointing out where exactly are they. I think it is beneficial for everyone if this project is maintained, and I may be able to contribute to it once the ambiguity I see around SDK integration is cleared up. On a side note though, I may have to promote another payment solution to the stakeholders if I find troubleshooting HyperPay api is consuming more time than I would like to give. |
Correct me if I'm wrong please, you're looking into how the SDK communicates with Flutter? I can provide as many details about the internals as I can in this issue, in case anyone else wants to carry on maintenance. TL;DR The native SDK is provided by HyperPay, I was working on a project where the technical support sends us the SDK via email (which I no longer work on hence I don't have any updates from them). Unfortunately, you cannot find it online or via MVN/Pod. Currently, the plugin has 2 sides, Android and iOS.
In short, if you want the newest version of the native SDK, contact HyperPay's support.
I agree with this. If you're not familiar with the integration of native APIs with Flutter, or with native Android/iOS, it's quite a learning curve, but IMHO is necessary for every Flutter developer to learn. I do encourage you though to check this article (part 1, part 2), it could be useful to understand how this plugin was built. But, AFAIK no other payment solution in MENA supports Flutter, probably there's one I'm not aware of, so keep this point in your mind when you look into other solutions. The point is, you would have to build your own plugin for any other gateway if they don't provide it. If you choose to give a try to this existing plugin, which is already built and integrated, it might be much easier. I discontinued the project cause none of its consumers were interested in co-maintaining it, nevertheless, if you are, I can help answer all your questions. |
Thank you for the detailed explanation and the resources. Yes I was confused about how to get access to the SDK specially when I compared HyperPay docs with other services like Moyasar PayTabs. I understand that creating your own plugin for any payment services in MENA is inevitable. My comment about moving away from HyperPay was rather about my personal experience with their documentation so far, it is really discouraging specially when comparing other solutions I have linked above. Nevertheless, I will be looking into it more before deciding to move to another solution and your comment is a great starting point to help me indulge in this. Thanks for the info. |
I have a question, we already have separate endpoints for getting the checkout id and the status of the payment. So I am confused about the necessity of having this config class TestConfig implements HyperpayConfig {
@override
String? creditcardEntityID = '';
@override
String? madaEntityID = '';
@override
String? applePayEntityID = '';
@override
Uri checkoutEndpoint = _checkoutEndpoint;
@override
Uri statusEndpoint = _statusEndpoint;
@override
PaymentMode paymentMode = PaymentMode.test;
} I only want to use the mobile SDK to be able to build Flutter UI, and submit the payment with my checkout id. Basically, the payment workflow would look like something like this:
In this way, we do not need any kind of configuration done from the mobile. The mobile only submits the payment to HyperPay api and that is it. Can this be achieved in any way ? |
The status endpoint is unnecessary, but the checkout endpoint is necessary because each payment to be submitted needs a checkoutId in the mobile SDK, there's no way to initialize a payment session for the user without first creating a checkoutId. I forgot to mark the statusEndpoint as optional when I removed the check for status from the plugin. |
These steps are totally achievable with the plugin and this is how I used it, the only problem is that you have to make a dummy Uri for the statusEndpoint cause it's required. Unless you fork or submit a PR to fix this. For the step number 4, there is a function which uses the statusEndpoint to check for the status, |
From my understanding the checkout endpoint is needed to obtain a checkout id. We already have this implemented using the web implementation. After hitting our checkout endpoint we get the checkout id, what is confusing to me is why do we need to provide our endpoint to |
I see your point, you're right, entities shouldn't be included in the client. I remember trying to fix it but it was going to be a big breaking change for all users so I postponed. |
Hello, we are updating our sdk to support threeDS payments with updated SDK of hyperpay. I am having issue regarding the redirect in asynchronous payments, in previous SDKs I used to submit transaction and I used to receive redirectURL from which I could do the payment in webview and return back to my application. But with new updated SDK, when I submit the transaction onThreeDSChallengeRequired this function gets triggered first and I know we can open view controller within its completion block. But still we liked the way it was working with redirectURL instead of opening payment form in modal. So is there anyway to do it the old fashioned way with redirectURL? Also even with Modal its not working as its supposed to be. Thanks in advance |
Dear @azharkhan1, as the title of this issue suggests, I've discontinued work on this plugin. If you have any solutions you would like to merge, open a PR and would be happy to review. |
Dear @pr-Mais , I know that the work is discontinued. I only wanted to know if you know something about the issue that I am having as I can see this package was updated to latest SDK. Please let me know if you could provide me info about my following issue. If i am able to come up with my solution sure I will be more than happy to create PR for it :) |
Thank you gal, I was able to get my react-native ios module working thanks to the code in this repo. |
@obayit happy to hear that! :) |
I’m taking a hard decision to discontinue this plugin, unfortunately. 😞
Many reasons include that I built it originally cause I was working on an app that uses HyperPay for payments, but since 2021 I’m no longer working on it. So I don’t have access anymore to any useful resources to fully test and troubleshoot the native SDK/API issues.
Currently, if the plugin is working for you then it will probably stay this way for a period of time, but make sure to find a solution before a breaking change in the gateway happens.
I’m sorry in advance for anyone who is using it in production, I'm proposing that you fork the project, it will stay public, make edits internally and keep using it.
Thanks to everyone who contributed to building this project, I had fun and learned a lot.
The text was updated successfully, but these errors were encountered: