Leonid Igolnik wrote:
John,
Let me take a step back here and try to explain a general reasoning of why API's for the different products behave differently. We as a wholesaler serve a channel of about 6000 resellers, each with there unique business processes requirements and frontend languages. Our customers need to be able to integrate our API's into their system and be able to follow their own business processes based on what happens to their requests sent to OpenSRS system. They also should be able to generate an end-user message using a language of their preference. We also see a need to simplify reseller's life by providing him/her with an accurate error message (you'll be surprised how many reseller are looking for there processed order just to find out it was pended). To support this the newer APIs return an accurate message that will allow the reseller to see why the request to the system failed, with that error message we will also return an error code specific to the failure so the reseller is able to take appropriate action (IMHO doing this based on the error code is simpler than parsing our messages which are not guaranteed to remain the same). Our client code implementation includes basic error code/message conversion along with specific handling for the code 7502 - which is the code indicated that reseller did not have enough funds to process the order.
Not sure if this is consistent with behavior of other OpenSRS products or even logical. Domains don't return an error code if there is an insufficient balance.
I agree it is not 100% consistent, but we have to start the process of improving our API's somewhere. New protocol seemed like a logical choice.
That makes sense - the error is either confusing to the customer ("Failed to create order: Insufficient balance - the customer might think you are talking about their balance) or embarrassing to the reseller (Customer would think you don't pay your bills or something).
I agree, it does not make any sense if you assume that the error is for the end user. But the error is there for you along with the code.
I would be interested to hear the feedback from the other members of this list on this issue.
Leonid Igolnik OpenSRS developer.
