VivaPayments / API

Index of Viva Wallet open source projects on GitHub.
139 stars 162 forks source link

Πρόβλημα σχετικά με το Mobile API #54

Closed sebdesign closed 8 years ago

sebdesign commented 8 years ago

Καλησπέρα,

Έχω υλοποιήσει ένα package για το Laravel framework το οποίο καλύπτει τις περισσότερες λειτουργίες που προσφέρει το VivaPayments API σύμφωνα με το wiki.

https://github.com/sebdesign/laravel-viva-payments

Έχω γράψει μια σειρά από functional tests τα οποία χτυπάνε το API στο demo environment, με τα κατάλληλα credentials: API key, Merchant ID, Public Key.

Επίσης έχω φτιάξει ένα source (code 4693) το οποίο προορίζεται native χρήση:

Protocol: https Όνομα domain: demo.vivapayments.com Integration method: Native/Πληρωμή με Viva Wallet Checkout URL Επιτυχημένης συναλλαγής: web/checkout/result URL Αποτυχημένης συναλλαγής: web/checkout/result

Ακολουθώντας τις οδηγίες του Mobile API παίρνω με επιτυχία το OrderCode, το Token, και τα MaxInstallments.

Όταν κάνω POST /api/Transactions μου επιστρέφει ένα μήνυμα με ErrorCode 403 και ErrorText Invalid input.

Το συγκεκριμένο test είναι αυτό: tests/functional/TransactionFunctionalTest.php.

Τι μπορεί να κάνω λάθος;

Αν προσθέσετε ένα αρχείο .env με τη μορφή του .env.example και τα σωστά credentials, και βάλετε το κατάλληλο source αντί για 4693, μπορείτε να το εκτελέσετε για να δείτε το αποτέλεσμα.

Ευχαριστώ!

dmihos commented 8 years ago

Καλησπέρα Δώστε μου, αν θέλετε, το merchantId που χρησιμοποιείτε στο demo, μαζί με το timestamp μιας προσπάθειας, για να δούμε το σφάλμα.

dmihos commented 8 years ago

Βρέθηκε από την πηγή ο έμπορος. Το πρόβλημα είναι το ποσό που περνάτε, είναι πολύ μικρό, δοκιμάστε κάτι μεγαλύτερο

sebdesign commented 8 years ago

Ευχαριστώ πολύ! Έβαλα ελάχιστο ποσό 30 cents και δούλεψε. Αυτό το ποσό ισχύει για όλες τις συναλλαγές; Ρωτάω επειδή το api/orders λειτουργεί και με μικρότερα ποσά.

Το επόμενο πρόβλημα που συναντώ είναι στο create recurring transaction. Εφόσον φτιάχνω ένα order με AllowRecurring: true και έχω επιλέξει την επιλογή recurring στο profile μου, όταν πάω να κάνω κάνω create recurring με το πρώτο transaction μου επιστρέφει ότι δεν επιτρέπονται τα recurring transactions (δε θυμάμαι ακριβώς το μήνυμα αυτή τη στιγμή.

dmihos commented 8 years ago

Καλησπέρα sebdesign Θα πρέπει να περάσετε true στο property AllowsRecurring και κατά την εκτέλεση της πληρωμής

{
                "OrderCode" : 1234567890987654,
                "SourceCode" : "3654",
                "AllowsRecurring" : 1,
                "CreditCard" : 
                {
                    "Token" : "ABCDEFGHIJKLMNOP"
                }
}
sebdesign commented 8 years ago

Καλησπέρα @dmihos, συνεχίζω να λαμβάνω Invalid transaction. The transaction with id 33cababb-ba0e-4191-b709-9b472183d2d1 does not allow recurring charge όταν εκτελώ ένα recurring transaction.

Στην πρώτη εκτέλεση της πληρωμής πέρασα το "AllowsRecurring": true, καθώς και το "AllowRecurring": true στη δημιουργία του order. Το response της πληρωμής ήταν:

{
  "Emv": null
  "Amount": 0.3
  "StatusId": "F"
  "TransactionId": "33cababb-ba0e-4191-b709-9b472183d2d1"
  "ReferenceNumber": 76626
  "RemainingRefunds": 5
  "AuthorizationId": "612132"
  "ErrorCode": 0
  "ErrorText": null
  "TimeStamp": "2016-03-28T23:39:51.3714508+03:00"
}
dmihos commented 8 years ago

Το Order 7390949845072601 βλέπω δεν έχει AllowRecurring true. Θέλετε να ξαναδείτε τον κώδικα του CreateOrder;

sebdesign commented 8 years ago

Ναι κι εγω οταν κανω GET ενα order δε μου εμφανιζει AllowRecurring στο response, ενω το περναω στο request μου. Ενω αλλα optional parameters οπως CustomerTrns, SourceCode, κλπ τα περναω και τα βλεπω κανονικα. Υπαρχει κατι που δε βλεπω στον κωδικα του CreateOrder;

dmihos commented 8 years ago

Με το merchantId σας δημιουργήσαμε με επιτυχία ένα Order με AllowRecurring = true. Κάπου στον κώδικά σας είναι το πρόβλημα, μάλλον δεν το περνάτε σωστά σαν option.

sebdesign commented 8 years ago

Μήπως σας είναι εύκολο να μου γράψετε ακριβώς τις παραμέτρους με τις οποίες δημιουργήσατε αυτό το order; Θέλω να το κάνω replicate για να καταλάβω τι κάνω λάθος.

dmihos commented 8 years ago

Πρόκειται για το OrderCode 2417415041472600. Δείτε με την GetOrder τα properties, δεν έχει κάτι ιδιαίτερο, το amount και το flag AllowRecurring σετάραμε κατά τη δημιουργία.

sebdesign commented 8 years ago

Η getOrder μου επιστρέφει τα εξής:

 "OrderCode": 2417415041472600
 "SourceCode": "Default"
 "Tags": []
 "RequestLang": "el-GR"
 "MerchantTrns": null
 "CustomerTrns": null
 "RequestAmount": 15.0
 "ExpirationDate": "2016-04-06T09:58:37.417"
 "StateId": 1

Δε βλέπω κάτι για AllowRecurring. Και τώρα που δοκιμάζω ξανά, οι μόνες παράμετροι που περνάνε στο createOrder είναι τα MerchantTrns, CustomerTrns, tags, RequestLang, και SourceCode. Τα υπόλοιπα optional parameters δεν εμφανίζονται στο response.

defilerc commented 8 years ago

Καλησπέρα @sebdesign ,

Η απάντηση της GetOrder, δεν επιστρέφει τα πλήρη στοιχεία της πληρωμής, για λόγους ασφαλείας. Για τις παραμέτρους που μπορείτε να περάσετε στην CreateOrder, μπορείτε να συμβουλευτείτε τις σελίδες:

Ευχαριστούμε πολύ