In this blog you will learn to use veriphone APIs and verify a phone number using it !!
I was looking for a solution to verify the phone number in my Salesforce Org and then I came across veriphone.io
In this example I am connecting veriphone APIs with my Salesforce Org to verify the phone number. I will create a Headerless Quick Action for that on Account Object and will verify Account's Phone number on click of it.
To check complete features and other details please visit veriphone.io website.
Step-1
Create a free account on veriphone.io and get the API key. We will use this API while making the callout.
Step-2
Add the callout domain in the remote site settings in your Salesforce Org as shown below :
Step-3
Create a Headerless Quick Action Lightning Web Component and APEX for Account as shown below :
HTML - As this is a Headerless QA it doesn't require any UI.
JS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | import { LightningElement, api, wire } from "lwc"; import verifyPhone from "@salesforce/apex/veriPhoneController.verifyPhone"; import { getRecord, getFieldValue } from "lightning/uiRecordApi"; import { ShowToastEvent } from "lightning/platformShowToastEvent"; import PHONE_FIELD from "@salesforce/schema/Account.Phone"; const fields = [PHONE_FIELD]; export default class VeriPhoneLWC extends LightningElement { @api recordId; @wire(getRecord, { recordId: "$recordId", fields }) account; @api invoke() { let phone = getFieldValue(this.account.data, PHONE_FIELD); verifyPhone({ phone: phone }) .then((result) => { if (result.phone_valid === true) { let msg = "This is a valid phone number from " + result.phone_region + " having " + result.carrier + " as carrier."; const evt = new ShowToastEvent({ title: "Valid Phone Number", message: msg, variant: "success" }); this.dispatchEvent(evt); } else { const evt = new ShowToastEvent({ title: "Error", message: "Noa a valid phone number !", variant: "error" }); this.dispatchEvent(evt); } }) .catch((error) => { console.log("===>Error during callout : " + JSON.stringify(error)); }); } } |
js-meta.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?xml version="1.0" encoding="UTF-8"?> <LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata"> <apiVersion>52.0</apiVersion> <isExposed>true</isExposed> <targets> <target>lightning__RecordAction</target> </targets> <targetConfigs> <targetConfig targets="lightning__RecordAction"> <actionType>Action</actionType> </targetConfig> </targetConfigs> </LightningComponentBundle> |
VeriPhoneDescriptor.cls
1 2 3 4 5 6 7 8 9 10 | public with sharing class VeriPhoneDescriptor { @AuraEnabled public String status; @AuraEnabled public Boolean phone_valid; @AuraEnabled public String phone_region; @AuraEnabled public String carrier; public VeriPhoneDescriptor parseJSON(String json){ return (VeriPhoneDescriptor) System.JSON.deserialize(json, VeriPhoneDescriptor.class); } } |
VeriPhoneController.cls
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public with sharing class VeriPhoneController {
@AuraEnabled
public static VeriPhoneDescriptor verifyPhone(String phone){
//I am having my API Key in custom label. You can use the key directly in code itself !!
string endpoint='https://api.veriphone.io/v2/verify?phone='+phone+'&key='+Label.apiKey;
Http http = new Http();
HttpRequest request = new HttpRequest();
request.setEndpoint(endPoint);
request.setMethod('GET');
system.debug(request);
HttpResponse response = http.send(request);
System.debug('===>Response : '+response.getBody());
return new VeriPhoneDescriptor().parseJSON(response.getBody());
}
}
|
Step-4
Create a Quick Action button on Account object and add it using page layout.
Output
0 Comments