@@ -5,6 +5,7 @@ const CUSTOM_BILLING_URL = LEGACY_STORE_URL + '/hub/custom-billing';
55const GENERATE_PAY_LINK_URL = LEGACY_STORE_URL + '/hub/generate-pay-link' ;
66const MANAGE_SUBSCRIPTION_URL = LEGACY_STORE_URL + '/hub/manage-subscription' ;
77const UPDATE_PAYMENT_METHOD_URL = LEGACY_STORE_URL + '/hub/update-payment-method' ;
8+ const REFRESH_LICENSE_URL = API_BASE_URL + '/licenses/hub/refresh' ;
89
910class HubSubscription {
1011
@@ -56,14 +57,15 @@ class HubSubscription {
5657 }
5758
5859 onLoadSubscriptionSucceeded ( data ) {
59- this . _subscriptionData . token = data . token ;
60+ this . _subscriptionData . verificationToken = data . token ;
6061 this . _subscriptionData . details = data . subscription ;
6162 if ( data . subscription . quantity ) {
6263 this . _subscriptionData . quantity = data . subscription . quantity ;
6364 }
6465 this . _subscriptionData . state = 'EXISTING_CUSTOMER' ;
6566 this . _subscriptionData . errorMessage = '' ;
6667 this . _subscriptionData . inProgress = false ;
68+ this . _subscriptionData . needsTokenRefresh = true ;
6769 }
6870
6971 onLoadSubscriptionFailed ( status , error ) {
@@ -271,7 +273,7 @@ class HubSubscription {
271273 override : payLink ,
272274 email : this . _subscriptionData . email ,
273275 locale : locale ,
274- passthrough : '{" hub_id": ' + this . _subscriptionData . hubId + '}' ,
276+ passthrough : JSON . stringify ( { hub_id : this . _subscriptionData . hubId } ) ,
275277 successCallback : data => this . getPaddleOrderDetails ( data . checkout . id ) ,
276278 closeCallback : ( ) => {
277279 this . _subscriptionData . inProgress = false ;
@@ -311,7 +313,7 @@ class HubSubscription {
311313
312314 onPostSucceeded ( data ) {
313315 this . _subscriptionData . state = 'EXISTING_CUSTOMER' ;
314- this . _subscriptionData . token = data . token ;
316+ this . _subscriptionData . verificationToken = data . token ;
315317 this . _subscriptionData . details = data . subscription ;
316318 this . _subscriptionData . session = data . session ;
317319 var searchParams = new URLSearchParams ( window . location . search )
@@ -320,7 +322,8 @@ class HubSubscription {
320322 history . pushState ( null , '' , newRelativePathQuery ) ;
321323 this . _subscriptionData . errorMessage = '' ;
322324 this . _subscriptionData . inProgress = false ;
323- this . transferTokenToHub ( ) ;
325+ this . _subscriptionData . shouldTransferToHub = true ;
326+ this . _subscriptionData . needsTokenRefresh = true ;
324327 }
325328
326329 onPostFailed ( error ) {
@@ -477,12 +480,13 @@ class HubSubscription {
477480 }
478481
479482 onPutSucceeded ( data , shouldOpenReturnUrl ) {
480- this . _subscriptionData . token = data . token ;
483+ this . _subscriptionData . verificationToken = data . token ;
481484 this . _subscriptionData . details = data . subscription ;
482485 this . _subscriptionData . errorMessage = '' ;
483486 this . _subscriptionData . inProgress = false ;
484487 if ( shouldOpenReturnUrl ) {
485- this . transferTokenToHub ( ) ;
488+ this . _subscriptionData . shouldTransferToHub = true ;
489+ this . _subscriptionData . needsTokenRefresh = true ;
486490 }
487491 }
488492
@@ -494,6 +498,31 @@ class HubSubscription {
494498 this . _subscriptionData . inProgress = false ;
495499 }
496500
501+ refreshToken ( ) {
502+ this . _subscriptionData . inProgress = true ;
503+ this . _subscriptionData . errorMessage = '' ;
504+ $ . ajax ( {
505+ url : REFRESH_LICENSE_URL ,
506+ type : 'POST' ,
507+ data : {
508+ token : this . _subscriptionData . verificationToken ,
509+ captcha : this . _subscriptionData . captcha
510+ }
511+ } ) . done ( token => {
512+ this . _subscriptionData . token = token ;
513+ this . _subscriptionData . needsTokenRefresh = false ;
514+ this . _subscriptionData . errorMessage = '' ;
515+ this . _subscriptionData . inProgress = false ;
516+ if ( this . _subscriptionData . shouldTransferToHub ) {
517+ this . transferTokenToHub ( ) ;
518+ }
519+ } ) . fail ( xhr => {
520+ this . _subscriptionData . errorMessage = xhr . responseJSON ?. message || 'Refreshing license failed.' ;
521+ this . _subscriptionData . needsTokenRefresh = false ;
522+ this . _subscriptionData . inProgress = false ;
523+ } ) ;
524+ }
525+
497526 transferTokenToHub ( ) {
498527 window . open ( this . _subscriptionData . returnUrl + '?token=' + this . _subscriptionData . token , '_self' ) ;
499528 }
0 commit comments