Jump to content

v4.1.1 Logicboxes Renewal


evolvewh

Recommended Posts

We just had a domain renewal paid for and Blesta shows a success in the cron and module logs. When I look for the actual transaction in resell.biz, there is no record of this renewal. I can provide the success logs if needed but I don't think that will do any good. Process service renewals runs every 15 minutes and I've waited an hour to make sure. Everything here is standard with no customizations.

Link to comment
Share on other sites

50 minutes ago, Blesta Addons said:

if blesta renew the domain, and send the command and get the success result, then the issue should be there in resell not in blesta .

We've never had an issue until now with any domains being renewed so I'm not sure if this was due to a recent update or an isolated issue with this particular domain. If nothing was sent and logged within resell.biz, why would Blesta report that it was successful?

Link to comment
Share on other sites

47 minutes ago, evolvewh said:

We've never had an issue until now with any domains being renewed so I'm not sure if this was due to a recent update or an isolated issue with this particular domain. If nothing was sent and logged within resell.biz, why would Blesta report that it was successful?

Simple, blesta will not log any response if not received,  also blesta will not generate the response it self !!!

So i'm totally sure this is related to resell.biz, have you checked the transaction log in resell ? maybe ask resell to give you the latest API request for your account .

Another Scenario, check if the order_id in blesta is the same as the order_id on resell.biz for that domain. maybe you have wrong orer_id and you have renewed another domain :(

 

 

Link to comment
Share on other sites

31 minutes ago, Blesta Addons said:

Simple, blesta will not log any response if not received,  also blesta will not generate the response it self !!!

So i'm totally sure this is related to resell.biz, have you checked the transaction log in resell ? maybe ask resell to give you the latest API request for your account .

Another Scenario, check if the order_id in blesta is the same as the order_id on resell.biz for that domain. maybe you have wrong orer_id and you have renewed another domain :(

 

 

Blesta did log a response for something that didn't happen. I've looked at the Blesta logs (module and cron) and at the Transactions list for resell.biz. This domain was renewed just last year so I know there isn't an issue with the order-id

I'll see if they can give me the latest API request. Thanks for the tip.

Link to comment
Share on other sites

17 hours ago, evolvewh said:

Blesta did log a response for something that didn't happen. I've looked at the Blesta logs (module and cron) and at the Transactions list for resell.biz. This domain was renewed just last year so I know there isn't an issue with the order-id

i still insist that blesta logged the response because the logicboxes send a response, to be logical, blesta can't generate or estimate the response how it should . just curios, can you paste the log how it was in blesta for this case ?

Link to comment
Share on other sites

56 minutes ago, Blesta Addons said:

i still insist that blesta logged the response because the logicboxes send a response, to be logical, blesta can't generate or estimate the response how it should . just curios, can you paste the log how it was in blesta for this case ?

Input:

https://httpapi.com/api/domains/details.json
a:4:{s:8:"order-id";s:8:"removed";s:7:"options";a:1:{i:0;s:12:"OrderDetails";}s:11:"auth-userid";s:6:"removed";s:7:"api-key";s:32:"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";}

Output:

https://httpapi.com/api/domains/details.json
{"domsecret":"removed","privacyprotectedallowed":"true","isprivacyprotected":"false","orderstatus":["transferlock","resellerlock"],"classkey":"domcno","orderSuspendedByParent":"false","isOrderSuspendedUponExpiry":"false","classname":"com.logicboxes.foundation.sfnb.order.domorder.DomCno","customerid":"removed","allowdeletion":"true","recurring":"false","isImmediateReseller":"true","productkey":"domcno","domainname":"removed.com","parentkey":"removed","productcategory":"domorder","creationtime":"1398131194","orderid":"removed","endtime":"1587519994","multilingualflag":"f","bulkwhoisoptout":"t","moneybackperiod":"4"}

 

Here is what is interesting compared with one that actually went through:

On one that has gone through, there are two inputs and two outputs with this message at the end of the second output: "actionstatusdesc":"Domain renewed successfully"}

So for the one that happened yesterday with an issue, there was only 1 input and 1 output and off to the right, 'success' was the message from Blesta.

Link to comment
Share on other sites

3 minutes ago, Blesta Addons said:

i don't see any renew command and response related to the renew command .this is just a demo info request for a domain .

And that's the issue. There should have been an error logged instead of just showing 1 input and 1 output marked as 'success'. I think there should have been a 2nd 'input' and marked as 'failed'. If I hadn't manually checked this one, it would have never been caught and the customer gets charged for a renewal that never actually happened.

Link to comment
Share on other sites

I took a quick look at the logicboxes module and found these lines of code

            $vars = [
                'years' => 1,
                'order-id' => $fields->{'order-id'},
                'exp-date' => $order->endtime,
                'invoice-option' => 'NoInvoice'
            ];

            foreach ($package->pricing as $pricing) {
                if ($pricing->id == $service->pricing_id) {
                    $vars['years'] = $pricing->term;
                    break;
                }
            }

            // Only process renewal if adding years today will add time to the expiry date
            if (strtotime('+' . $vars['years'] . ' years') > $order->endtime) {
                $response = $domains->renew($vars);
                $this->processResponse($api, $response);
            }

 

What it means is that if the end time fetched from logicboxes is farther in the future than the current time plus the number of year from the pricing term, then the request to renew will not be sent.  I don't fully understand your problem, but is it possible that this accounts for it?

Link to comment
Share on other sites

1 hour ago, Jono said:

I took a quick look at the logicboxes module and found these lines of code


            $vars = [
                'years' => 1,
                'order-id' => $fields->{'order-id'},
                'exp-date' => $order->endtime,
                'invoice-option' => 'NoInvoice'
            ];

            foreach ($package->pricing as $pricing) {
                if ($pricing->id == $service->pricing_id) {
                    $vars['years'] = $pricing->term;
                    break;
                }
            }

            // Only process renewal if adding years today will add time to the expiry date
            if (strtotime('+' . $vars['years'] . ' years') > $order->endtime) {
                $response = $domains->renew($vars);
                $this->processResponse($api, $response);
            }

 

What it means is that if the end time fetched from logicboxes is farther in the future than the current time plus the number of year from the pricing term, then the request to renew will not be sent.  I don't fully understand your problem, but is it possible that this accounts for it?

maybe you are right, from thier log "endtime":"1587519994" that mean the renewal date is 2020-04-22 01:46:34  .

Link to comment
Share on other sites

So the domain did have a renewal date of 2020-04-22 but the invoice was generated because we didn't catch it in time and manually update the correct renewal date after it was transferred in to us last year. At one point, I thought the module would synchronize the dates on it's own but have learned since then that it doesn't and we have to manually check these dates.

Even with that being the case, why wouldn't it go through and add another year to the expiration? I could understand it if the domain was already registered 10 years out.

Link to comment
Share on other sites

On 10/16/2017 at 12:21 PM, evolvewh said:

Even with that being the case, why wouldn't it go through and add another year to the expiration?

Hmmm, it sounds like this is only an issue when the service is not synced with the domain, since it should not be build until the expiration is approaching.  I think the intent of that code was to prevent a domains expiration from being bumped a second time if an admin manually changed it already in logicboxes.

Link to comment
Share on other sites

14 hours ago, Jono said:

Hmmm, it sounds like this is only an issue when the service is not synced with the domain, since it should not be build until the expiration is approaching.  I think the intent of that code was to prevent a domains expiration from being bumped a second time if an admin manually changed it already in logicboxes.

Is there a short term to automatically sync the dates? It's way too easy to miss when a company has a large number of domains and I know it's possible in other plugins such as TheSSLStore. I would hope it is a feature in the new domain plugin that you guys are working on.

Link to comment
Share on other sites

18 minutes ago, evolvewh said:

Is there a short term to automatically sync the dates? It's way too easy to miss when a company has a large number of domains and I know it's possible in other plugins such as TheSSLStore. I would hope it is a feature in the new domain plugin that you guys are working on.

can be done with a separate plugin, but we prefer if modules can host and run crons.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...