Merge remote-tracking branch 'origin/develop' into feature/digital/SSR-1081
This commit is contained in:
commit
499639bb37
4 changed files with 322 additions and 101 deletions
|
|
@ -99,6 +99,10 @@ const endpoints = Object.freeze({
|
||||||
url: '/vehicle/api/v1/vehicle/lookup',
|
url: '/vehicle/api/v1/vehicle/lookup',
|
||||||
method: 'GET'
|
method: 'GET'
|
||||||
},
|
},
|
||||||
|
GetAccountInfo: {
|
||||||
|
url: '/account/api/v1/account/',
|
||||||
|
method: 'GET'
|
||||||
|
},
|
||||||
LogExperimentExposureIfAssigned: {
|
LogExperimentExposureIfAssigned: {
|
||||||
url: '/experiments/api/v1/experiments/log-exposure',
|
url: '/experiments/api/v1/experiments/log-exposure',
|
||||||
method: 'POST'
|
method: 'POST'
|
||||||
|
|
|
||||||
|
|
@ -38,71 +38,191 @@
|
||||||
</Form>
|
</Form>
|
||||||
|
|
||||||
<form
|
<form
|
||||||
ref="hopForm"
|
|
||||||
id="card-data"
|
id="card-data"
|
||||||
|
ref="hopForm"
|
||||||
:target="isPaypal ? '_top' : 'card-frame'"
|
:target="isPaypal ? '_top' : 'card-frame'"
|
||||||
method="POST"
|
method="POST"
|
||||||
:action="checkoutUrl">
|
:action="checkoutUrl">
|
||||||
<input type="hidden" name="paymentType" :value="paymentType" />
|
<input
|
||||||
<input type="hidden" name="sgSessionId" :value="authToken" />
|
type="hidden"
|
||||||
<input type="hidden" name="sgAuthToken" :value="authToken" />
|
name="paymentType"
|
||||||
<input type="hidden" name="sgSignaturePublic" :value="authSignature" />
|
:value="paymentType" />
|
||||||
<input type="hidden" name="sgSignatureStartDate" :value="authSignatureStart" />
|
<input
|
||||||
<input type="hidden" name="referralSeqNum" :value="referralSequenceNumber" />
|
type="hidden"
|
||||||
|
name="sgSessionId"
|
||||||
<input type="hidden" name="sge_commerce_indicator_isinternet" value="true" />
|
:value="authToken" />
|
||||||
<input type="hidden" name="sghopsource" value="Safelite.com" />
|
<input
|
||||||
<input type="hidden" name="sgHtmlStyle" value="ResourceSafeliteHtml" />
|
type="hidden"
|
||||||
<input type="hidden" name="sgErrorMessagesEmbedded" value="true" />
|
name="sgAuthToken"
|
||||||
|
:value="authToken" />
|
||||||
<input type="hidden" name="sgNoKeystrokeProcessing" value="false" />
|
<input
|
||||||
|
type="hidden"
|
||||||
<input type="hidden" name="maskCharacter" value="*" />
|
name="sgSignaturePublic"
|
||||||
<input type="hidden" name="styleSheetCode" :value="dynamicCSSUrl" />
|
:value="authSignature" />
|
||||||
<input type="hidden" name="styleSheetCode2" :value="dynamicHopCSSUrl" />
|
<input
|
||||||
|
type="hidden"
|
||||||
<input type="hidden" name="sgReceiptResponseURL" :value="payInAdvanceResponseUrl" />
|
name="sgSignatureStartDate"
|
||||||
<input type="hidden" name="sgDeclineResponseURL" :value="payInAdvanceResponseUrl" />
|
:value="authSignatureStart" />
|
||||||
<input type="hidden" name="sgErrorResponseURL" :value="payInAdvanceResponseUrl" />
|
<input
|
||||||
|
type="hidden"
|
||||||
<input type="hidden" name="sgheaderline1" :value="getHeaderLine1" />
|
name="referralSeqNum"
|
||||||
<input type="hidden" name="sgHeader1subtitle" value="" />
|
:value="referralSequenceNumber" />
|
||||||
<input type="hidden" name="sgheaderline2" :value="getHeaderLine2" />
|
<input
|
||||||
<input type="hidden" name="sgheaderline3" value="" />
|
type="hidden"
|
||||||
<input type="hidden" name="sgheaderline4" value="" />
|
name="sge_commerce_indicator_isinternet"
|
||||||
<input type="hidden" name="sgheaderline5" value="*Required information" />
|
value="true" />
|
||||||
|
<input
|
||||||
<input type="hidden" name="billTo_firstName" :value="firstName" />
|
type="hidden"
|
||||||
<input type="hidden" name="billTo_firstNameShow" value="true" />
|
name="sghopsource"
|
||||||
<input type="hidden" name="sghopmiddleInitialShow" value="false" />
|
value="Safelite.com" />
|
||||||
<input type="hidden" name="billTo_lastName" :value="lastName" />
|
<input
|
||||||
<input type="hidden" name="billTo_lastNameShow" value="true" />
|
type="hidden"
|
||||||
|
name="sgHtmlStyle"
|
||||||
<input type="hidden" name="billTo_street1" value="" />
|
value="ResourceSafeliteHtml" />
|
||||||
<input type="hidden" name="billTo_street2" value="" />
|
<input
|
||||||
<input type="hidden" name="billTo_city" value="" />
|
type="hidden"
|
||||||
<input type="hidden" name="billTo_state" value="" />
|
name="sgErrorMessagesEmbedded"
|
||||||
|
value="true" />
|
||||||
<input type="hidden" name="billTo_postalCode" value="" />
|
<input
|
||||||
<input type="hidden" name="billTo_postalCodeShow" value="true" />
|
type="hidden"
|
||||||
<input type="hidden" name="billTo_postalCodeEnable" value="true" />
|
name="sgNoKeystrokeProcessing"
|
||||||
<input type="hidden" name="sgLabelPostalCode" value="Billing ZIP" />
|
value="false" />
|
||||||
|
<input
|
||||||
<input type="hidden" name="sgtotalamount" :value="displayAmount" />
|
type="hidden"
|
||||||
<input type="hidden" name="totalAmountDecimal" :value="totalAmount" />
|
name="maskCharacter"
|
||||||
<input type="hidden" name="lineItems" :value="payInAdvanceLineItems" />
|
value="*" />
|
||||||
|
<input
|
||||||
<input type="hidden" name="sgdiscountstrikethruamount" value="" />
|
type="hidden"
|
||||||
|
name="styleSheetCode"
|
||||||
<input type="hidden" name="callerDisplayText" value="" />
|
:value="dynamicCSSUrl" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="styleSheetCode2"
|
||||||
|
:value="dynamicHopCSSUrl" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgReceiptResponseURL"
|
||||||
|
:value="payInAdvanceResponseUrl" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgDeclineResponseURL"
|
||||||
|
:value="payInAdvanceResponseUrl" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgErrorResponseURL"
|
||||||
|
:value="payInAdvanceResponseUrl" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgheaderline1"
|
||||||
|
:value="getHeaderLine1" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgHeader1subtitle"
|
||||||
|
value="" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgheaderline2"
|
||||||
|
:value="getHeaderLine2" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgheaderline3"
|
||||||
|
value="" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgheaderline4"
|
||||||
|
value="" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgheaderline5"
|
||||||
|
value="*Required information" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="billTo_firstName"
|
||||||
|
:value="firstName" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="billTo_firstNameShow"
|
||||||
|
value="true" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sghopmiddleInitialShow"
|
||||||
|
value="false" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="billTo_lastName"
|
||||||
|
:value="lastName" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="billTo_lastNameShow"
|
||||||
|
value="true" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="billTo_street1"
|
||||||
|
value="" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="billTo_street2"
|
||||||
|
value="" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="billTo_city"
|
||||||
|
value="" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="billTo_state"
|
||||||
|
value="" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="billTo_postalCode"
|
||||||
|
value="" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="billTo_postalCodeShow"
|
||||||
|
value="true" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="billTo_postalCodeEnable"
|
||||||
|
value="true" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgLabelPostalCode"
|
||||||
|
value="Billing ZIP" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgtotalamount"
|
||||||
|
:value="displayAmount" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="totalAmountDecimal"
|
||||||
|
:value="totalAmount" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="lineItems"
|
||||||
|
:value="payInAdvanceLineItems" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgdiscountstrikethruamount"
|
||||||
|
value="" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="callerDisplayText"
|
||||||
|
value="" />
|
||||||
<input
|
<input
|
||||||
type="hidden"
|
type="hidden"
|
||||||
name="sgtermsofusedisplaytext"
|
name="sgtermsofusedisplaytext"
|
||||||
value="By selecting submit, I agree to Safelite's" />
|
value="By selecting submit, I agree to Safelite's" />
|
||||||
<input type="hidden" name="sgtermsofuseurl" value="http://www.safelite.com/terms-of-use/" />
|
<input
|
||||||
<input type="hidden" name="sgtermsofuselinkdisplaytext" value="terms of use" />
|
type="hidden"
|
||||||
<input type="hidden" name="sgtermsofcancelrefunddisplaytext" value="and" />
|
name="sgtermsofuseurl"
|
||||||
|
value="http://www.safelite.com/terms-of-use/" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgtermsofuselinkdisplaytext"
|
||||||
|
value="terms of use" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgtermsofcancelrefunddisplaytext"
|
||||||
|
value="and" />
|
||||||
<input
|
<input
|
||||||
type="hidden"
|
type="hidden"
|
||||||
name="sgtermsofcancelrefundlinkdisplaytext"
|
name="sgtermsofcancelrefundlinkdisplaytext"
|
||||||
|
|
@ -111,7 +231,6 @@
|
||||||
type="hidden"
|
type="hidden"
|
||||||
name="sgtermsofcancelrefundurl"
|
name="sgtermsofcancelrefundurl"
|
||||||
value="http://www.safelite.com/cancellation-refund-policy" />
|
value="http://www.safelite.com/cancellation-refund-policy" />
|
||||||
|
|
||||||
<input
|
<input
|
||||||
type="hidden"
|
type="hidden"
|
||||||
name="sgErrorMessageCardVerification"
|
name="sgErrorMessageCardVerification"
|
||||||
|
|
@ -120,42 +239,122 @@
|
||||||
type="hidden"
|
type="hidden"
|
||||||
name="sgErrorMessageTimeOut"
|
name="sgErrorMessageTimeOut"
|
||||||
value="For your security, this transaction has been timed out." />
|
value="For your security, this transaction has been timed out." />
|
||||||
|
<input
|
||||||
<input type="hidden" name="sgLabelCardNumber" value="" />
|
type="hidden"
|
||||||
<input type="hidden" name="sgLabelAddressLine1" :value="address1" />
|
name="sgLabelCardNumber"
|
||||||
<input type="hidden" name="sgLabelAddressLine2" :value="address2" />
|
value="" />
|
||||||
<input type="hidden" name="sgLabelCity" :value="city" />
|
<input
|
||||||
<input type="hidden" name="sgLabelState" :value="state" />
|
type="hidden"
|
||||||
|
name="sgLabelAddressLine1"
|
||||||
<input type="hidden" name="sgCtu" :value="ctu" />
|
:value="address1" />
|
||||||
<input type="hidden" name="sgWorkOrder" :value="workOrderNumber" />
|
<input
|
||||||
<input type="hidden" name="sgEmailAddress" :value="emailAddress" />
|
type="hidden"
|
||||||
<input type="hidden" name="paypalInvoiceNumber" :value="invoiceNumber" />
|
name="sgLabelAddressLine2"
|
||||||
<input type="hidden" name="paypalSuccessUrl" :value="payInAdvanceResponseUrl" />
|
:value="address2" />
|
||||||
<input type="hidden" name="paypalCancelUrl" :value="payInAdvanceCancelUrl" />
|
<input
|
||||||
|
type="hidden"
|
||||||
<input type="hidden" name="sgCCDeclineURL" :value="payInAdvanceCancelUrl" />
|
name="sgLabelCity"
|
||||||
<input type="hidden" name="sgCCTimeoutURL" :value="payInAdvanceCancelUrl" />
|
:value="city" />
|
||||||
|
<input
|
||||||
<input type="hidden" name="sgTransactionType" value="authorization" />
|
type="hidden"
|
||||||
<input type="hidden" name="amount" :value="totalAmount" />
|
name="sgLabelState"
|
||||||
<input type="hidden" name="ctu" :value="ctu" />
|
:value="state" />
|
||||||
<input type="hidden" name="orderNumber" :value="workOrderNumber" />
|
<input
|
||||||
|
type="hidden"
|
||||||
<input type="hidden" name="billTo_email" :value="emailAddress" />
|
name="sgCtu"
|
||||||
<input type="hidden" name="useDecisionManager" value="True" />
|
:value="ctu" />
|
||||||
<input type="hidden" name="correlationId" :value="referralCorrelationId" />
|
<input
|
||||||
<input type="hidden" name="sgErrorMessageCard_CVN" value="Please enter a valid CVV" />
|
type="hidden"
|
||||||
|
name="sgWorkOrder"
|
||||||
<input type="hidden" name="ship_to_address_line1" :value="address1" />
|
:value="workOrderNumber" />
|
||||||
<input type="hidden" name="ship_to_address_line2" :value="address2" />
|
<input
|
||||||
<input type="hidden" name="ship_to_address_city" :value="city" />
|
type="hidden"
|
||||||
<input type="hidden" name="ship_to_address_state" :value="state" />
|
name="sgEmailAddress"
|
||||||
<input type="hidden" name="ship_to_address_country" value="US" />
|
:value="emailAddress" />
|
||||||
<input type="hidden" name="ship_to_address_postal_code" :value="zipCode" />
|
<input
|
||||||
<input type="hidden" name="ship_to_phone" :value="phoneNumber" />
|
type="hidden"
|
||||||
|
name="paypalInvoiceNumber"
|
||||||
<input type="hidden" name="calling_application" value="ISSNextGen" />
|
:value="invoiceNumber" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="paypalSuccessUrl"
|
||||||
|
:value="payInAdvanceResponseUrl" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="paypalCancelUrl"
|
||||||
|
:value="payInAdvanceCancelUrl" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgCCDeclineURL"
|
||||||
|
:value="payInAdvanceCancelUrl" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgCCTimeoutURL"
|
||||||
|
:value="payInAdvanceCancelUrl" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgTransactionType"
|
||||||
|
value="authorization" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="amount"
|
||||||
|
:value="totalAmount" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="ctu"
|
||||||
|
:value="ctu" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="orderNumber"
|
||||||
|
:value="workOrderNumber" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="billTo_email"
|
||||||
|
:value="emailAddress" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="useDecisionManager"
|
||||||
|
value="True" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="correlationId"
|
||||||
|
:value="referralCorrelationId" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="sgErrorMessageCard_CVN"
|
||||||
|
value="Please enter a valid CVV" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="ship_to_address_line1"
|
||||||
|
:value="address1" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="ship_to_address_line2"
|
||||||
|
:value="address2" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="ship_to_address_city"
|
||||||
|
:value="city" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="ship_to_address_state"
|
||||||
|
:value="state" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="ship_to_address_country"
|
||||||
|
value="US" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="ship_to_address_postal_code"
|
||||||
|
:value="zipCode" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="ship_to_phone"
|
||||||
|
:value="phoneNumber" />
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="calling_application"
|
||||||
|
value="ISSNextGen" />
|
||||||
</form>
|
</form>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
|
||||||
|
|
@ -99,13 +99,19 @@ export default {
|
||||||
async beforeRouteEnter(to, from, next) {
|
async beforeRouteEnter(to, from, next) {
|
||||||
// Call APIs
|
// Call APIs
|
||||||
const cmsContentPromise = fetchCmsContentForPage(to.query.issPage);
|
const cmsContentPromise = fetchCmsContentForPage(to.query.issPage);
|
||||||
|
const accountInfoPromise = useMainStore().getCarrierAccountInfo();
|
||||||
// Settle promises and get results
|
// Settle promises and get results
|
||||||
const promiseResultMap = [
|
const promiseResultMap = [
|
||||||
{
|
{
|
||||||
resultKey: 'cmsContent',
|
resultKey: 'cmsContent',
|
||||||
promise: cmsContentPromise
|
promise: cmsContentPromise
|
||||||
}];
|
},
|
||||||
// use resultMap to populate layout content.
|
{
|
||||||
|
resultKey: 'accountInfo',
|
||||||
|
promise: accountInfoPromise
|
||||||
|
}
|
||||||
|
];
|
||||||
|
// use resultMap to populate layout content.
|
||||||
const resultMap = await settleAllPromises(promiseResultMap);
|
const resultMap = await settleAllPromises(promiseResultMap);
|
||||||
next((vm) => {
|
next((vm) => {
|
||||||
vm.setCmsContent(resultMap.cmsContent);
|
vm.setCmsContent(resultMap.cmsContent);
|
||||||
|
|
@ -161,15 +167,14 @@ export default {
|
||||||
isVerified() {
|
isVerified() {
|
||||||
return useMainStore().order.payment.insuranceCoverage.isVerified;
|
return useMainStore().order.payment.insuranceCoverage.isVerified;
|
||||||
},
|
},
|
||||||
// TODO: Replace with actual carrier number when account service is ready
|
|
||||||
carrierPhoneNumber() {
|
|
||||||
return '800-000-0000';
|
|
||||||
},
|
|
||||||
carrierName() {
|
carrierName() {
|
||||||
return this.mainStore.issConfig.clientName;
|
return this.mainStore.issConfig.clientName;
|
||||||
},
|
},
|
||||||
carrierUrl() {
|
carrierUrl() {
|
||||||
return this.mainStore.issConfig.successReturnURL;
|
return this.mainStore.issConfig.successReturnURL;
|
||||||
|
},
|
||||||
|
carrierPhoneNumber() {
|
||||||
|
return this.toDisplayPhoneNumber(useMainStore().order.carrierPhoneNumber);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
|
||||||
|
|
@ -175,7 +175,8 @@ const getDefaultState = () => ({
|
||||||
eon: null,
|
eon: null,
|
||||||
workOrderNumber: null,
|
workOrderNumber: null,
|
||||||
originalDeductible: null,
|
originalDeductible: null,
|
||||||
currentDeductible: null
|
currentDeductible: null,
|
||||||
|
carrierPhoneNumber: null
|
||||||
},
|
},
|
||||||
applicationUser: {
|
applicationUser: {
|
||||||
experiments: [],
|
experiments: [],
|
||||||
|
|
@ -925,6 +926,18 @@ export const useMainStore = defineStore({
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getCarrierAccountInfo() {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
globalMethods.callHttpClient({
|
||||||
|
method: endpoints.GetAccountInfo.method,
|
||||||
|
endpoint: endpoints.GetAccountInfo.url + this.issConfig.parentAccountNumber
|
||||||
|
}).then((response) => {
|
||||||
|
this.order.carrierPhoneNumber = response.data.phoneNumber;
|
||||||
|
return resolve(response.data);
|
||||||
|
}).catch((error) => reject(error));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
async getSupportingItems() {
|
async getSupportingItems() {
|
||||||
const glassPartsArray = this.order.lineItems.glassParts ?? [];
|
const glassPartsArray = this.order.lineItems.glassParts ?? [];
|
||||||
const { carId } = this.order.vehicle;
|
const { carId } = this.order.vehicle;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue