{"action":"created","issue":{"url":"https://api.github.com/repos/VivaPayments/API/issues/158","repository_url":"https://api.github.com/repos/VivaPayments/API","labels_url":"https://api.github.com/repos/VivaPayments/API/issues/158/labels{/name}","comments_url":"https://api.github.com/repos/VivaPayments/API/issues/158/comments","events_url":"https://api.github.com/repos/VivaPayments/API/issues/158/events","html_url":"https://github.com/VivaPayments/API/issues/158","id":170867521,"number":158,"title":"Null In res.Data Response Object From /api/Transactions","user":{"login":"ppsichopedas","id":20990821,"avatar_url":"https://avatars.githubusercontent.com/u/20990821?v=3","gravatar_id":"","url":"https://api.github.com/users/ppsichopedas","html_url":"https://github.com/ppsichopedas","followers_url":"https://api.github.com/users/ppsichopedas/followers","following_url":"https://api.github.com/users/ppsichopedas/following{/other_user}","gists_url":"https://api.github.com/users/ppsichopedas/gists{/gist_id}","starred_url":"https://api.github.com/users/ppsichopedas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ppsichopedas/subscriptions","organizations_url":"https://api.github.com/users/ppsichopedas/orgs","repos_url":"https://api.github.com/users/ppsichopedas/repos","events_url":"https://api.github.com/users/ppsichopedas/events{/privacy}","received_events_url":"https://api.github.com/users/ppsichopedas/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-08-12T13:08:49Z","updated_at":"2016-08-16T10:39:04Z","closed_at":null,"body":"Καλησπέρα σας,\r\nΈχουμε υλοποιήσει εδώ και πολύ καιρό την σύνδεση με το API και πριν από δύο μέρες παρατηρήθηκε το εξής φαινόμενο:\r\n\r\nΣτην προσπάθεια ενός πελάτη μας να κάνει αγορά (πρώτη φορά) η κλήση στο api/Transactions απάντησε με null στο property data!\r\n\r\nΣτο σημείο αυτό θα ήθελα να σας επισημάνω ένα σφάλμα που έχετε στον κώδικα σας στην σελίδα: \r\n[https://github.com/VivaPayments/API/wiki/Native-Checkout](https://github.com/VivaPayments/API/wiki/Native-Checkout)\r\nτο οποίο είναι άμεσα συνεδεμένο με το πρόβλημα που σας περιγράφω.\r\n\r\nΣυγκεκριμένα στην ενότητα Full Sample στο τέλος της σελίδα έχετε τον παρακάτω κώδικα:\r\n\r\n> protected void Page_Load(object sender, EventArgs e)\r\n>     {\r\n>         if (Request.HttpMethod == \"POST\") {\r\n> \r\n>             var _orderCode = CreateOrder(10000);    //CALL TO CREATE AN ORDER. IF AN ORDER CODE ALREADY EXISTS FROM A PREVIOUS STEP, USE THAT ONE INSTEAD\r\n> \r\n>             var cl = new RestClient(_BaseApiUrl);\r\n>             cl.Authenticator = new HttpBasicAuthenticator(\r\n>                                     _MerchantId.ToString(),\r\n>                                     _ApiKey);\r\n> \r\n>             var req = new RestRequest(_PaymentsUrl, Method.POST);\r\n>             req.RequestFormat = DataFormat.Json;\r\n>             req.AddBody(new {\r\n>                 OrderCode = _orderCode,\r\n>                 SourceCode = \"Default\",             //MAKE SURE THIS IS A SOURCE OF TYPE NATIVE/SIMPLE \r\n>                 CreditCard = new {\r\n>                     Token = hidToken.Value.ToString()\r\n>                 }\r\n>             });\r\n> \r\n>             paymentform.Visible = false;\r\n> \r\n>             var res = cl.Execute<TransactionResult>(req);\r\n>             if (res.Data != null && res.Data.ErrorCode == 0 && res.Data.StatusId == \"F\") {\r\n>                 Response.Write(String.Format(\r\n>                     \"Transaction was successful. TransactionId is {0}\",\r\n>                     res.Data.TransactionId));\r\n>             }\r\n>             else{\r\n>                 Response.Write(String.Format(\r\n>                     \"Transaction failed. Error code was {0}\",\r\n>                     res.Data.ErrorCode));\r\n>             }\r\n> \r\n>         }\r\n>     }\r\n\r\nΣτο If μετά την απάντηση από την υπηρεσία σας κάνετε έλεγχο εάν το **res.Data != null** και στην περίπτωση που είναι, (else) προσπαθείτε να διαβάσετε το **res.Data.ErrorCode**\r\n\r\nΑυτό ακριβώς συνέβη στην δική μας περίπτωση:\r\nΟ πελάτης στην πρώτη του απόπειρα πήρε πίσω null στο res.Data με αποτέλεσμα εμείς με την σειρά μας να θεωρήσουμε ότι η απόπειρα απέτυχε και να  τον αφήσουμε να προσπαθήσει ξανά.\r\nΣτο σύστημά σας όμως η χρέωση είχε γίνει κανονικά.\r\n\r\nΘα ήθελα να μου δώσετε οδηγίες για το πώς να χειριστούμε την περίπτωση του res.Data == null που σας περιγράφω, διότι όταν έρθει τέτοιου είδους απάντηση δεν είναι εφικτό να συνεχίσουμε την διαδικασία πληρωμής αλλά ούτε να ξέρουμε τι έχει συμβεί στο σύστημά σας.\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/VivaPayments/API/issues/comments/240067029","html_url":"https://github.com/VivaPayments/API/issues/158#issuecomment-240067029","issue_url":"https://api.github.com/repos/VivaPayments/API/issues/158","id":240067029,"user":{"login":"dpnevmatikos","id":1810462,"avatar_url":"https://avatars.githubusercontent.com/u/1810462?v=3","gravatar_id":"","url":"https://api.github.com/users/dpnevmatikos","html_url":"https://github.com/dpnevmatikos","followers_url":"https://api.github.com/users/dpnevmatikos/followers","following_url":"https://api.github.com/users/dpnevmatikos/following{/other_user}","gists_url":"https://api.github.com/users/dpnevmatikos/gists{/gist_id}","starred_url":"https://api.github.com/users/dpnevmatikos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpnevmatikos/subscriptions","organizations_url":"https://api.github.com/users/dpnevmatikos/orgs","repos_url":"https://api.github.com/users/dpnevmatikos/repos","events_url":"https://api.github.com/users/dpnevmatikos/events{/privacy}","received_events_url":"https://api.github.com/users/dpnevmatikos/received_events","type":"User","site_admin":false},"created_at":"2016-08-16T10:39:04Z","updated_at":"2016-08-16T10:39:04Z","body":"Καλησπέρα @ppsichopedas ,\r\n\r\n> Στην προσπάθεια ενός πελάτη μας να κάνει αγορά (πρώτη φορά) η κλήση στο api/Transactions απάντησε με null στο property data!\r\n\r\nΜπορείτε να δείτε σε αυτή την περίπτωση το ```res.StatusCode``` τι τιμή έχει? Συνήθως αυτό συμβαίνει όταν έχετε βάλει λάθος [MerchantId](https://github.com/VivaPayments/API/blob/master/NativeCheckout/ASP.NET/NativeCheckoutWebforms/Default.aspx.cs#L6).\r\n\r\n>Στο If μετά την απάντηση από την υπηρεσία σας κάνετε έλεγχο εάν το res.Data != null και στην περίπτωση που είναι, (else) προσπαθείτε να διαβάσετε το res.Data.ErrorCode\r\n\r\nΌντως όπως αναφέρατε το sample χρειαζοταν διόρθωση σε εκείνο το σημείο. Δείτε το ανανεωμένο sample [εδώ](https://github.com/VivaPayments/API/blob/master/NativeCheckout/ASP.NET/NativeCheckoutWebforms/Default.aspx.cs)"}}
{"actor":{"display_login":"dpnevmatikos"}}