[ad_1]
Samsung ha investito enormi sforzi nell’economia digitale fin dall’inizio e aiuta continuamente milioni di persone che utilizzano Samsung Wallet. Samsung Wallet è uno dei portafogli digitali più utilizzati in questo momento nel settore del cashless. È un mezzo che alimenta le transazioni in valuta digitale grazie alla sua facilità d’uso e sicurezza.
Per supportare varie attività, Samsung ha sviluppato Samsung Pay SDK che ti consente di utilizzare le funzionalità di Samsung Wallet senza sforzo. L’SDK Android di Samsung Pay è costituito da API basate su Android per eseguire transazioni utilizzando Samsung Wallet. Aiuta a implementare soluzioni di pagamento semplici, che portano la crescita della tua azienda al livello successivo. Per comprendere l’attività e le possibilità, visitare il portale Samsung Pay SDK per ulteriori informazioni.
Cos’è il provisioning push?
Il provisioning push è una delle principali funzionalità dell’SDK Samsung Pay. Consente a una banca emittente di trasferire l’esperienza di pagamento su un portafoglio digitale. Semplifica il processo di aggiunta di una carta di pagamento poiché può essere fatto con un solo tocco di un dito.
Il normale processo richiede molto tempo poiché prevede più passaggi e l’utente deve inserire i dati della propria carta. Con il provisioning push, il processo è più semplice poiché può essere eseguito con un solo tocco ed è anche sicuro perché il processo viene eseguito dall’applicazione emittente.
Questo tutorial mostra come implementare la funzionalità di provisioning push in un’applicazione dell’emittente con l’SDK Samsung Pay.
Figura 1: concetto di provisioning push di Samsung Pay
Prerequisito
Per utilizzare l’SDK Samsung Pay, devi essere un partner Samsung ufficiale. Per informazioni sul processo di partnership, consultare la guida per i membri Samsung Pay. In qualità di partner dell’SDK Samsung Pay, puoi utilizzare questo tutorial durante l’implementazione del provisioning push.
Integrazione dell’SDK
-
Per scaricare l’SDK Samsung Pay, vai su Portale sviluppatori Samsung > Samsung Pay > Scarica. Una volta completato il download, nella cartella Libs è possibile trovare un file .jar chiamato “SamsungPaySDK_x.xx.xx_release.jar”.
-
Aggiungi il file .jar dell’SDK Samsung Pay alla cartella libs del tuo progetto Android utilizzando Android Studio o Esplora file.
-
Passare al file build.gradle del modulo dell’applicazione e inserire la seguente dipendenza nel blocco delle dipendenze:
implementation files('libs/SamsungPaySDK_x.xx.xx_release.jar')
-
Se la versione dell’SDK di destinazione è 30 o successiva (Android 11 o R-OS), includi il seguente elemento
in AndroidManifest.xml. Per ulteriori informazioni, vedere Dichiarare le esigenze di visibilità del pacchetto. <queries> <package android:name="com.samsung.android.spay" /> </queries>
-
Poiché stiamo utilizzando l’SDK più recente, imposta il livello API su 2.18. Ti consigliamo di utilizzare la versione aggiornata dell’SDK Samsung Pay per una migliore esperienza utente. Implementa il codice seguente nell’elemento
di AndroidManifest.xml: <meta-data android:name="spay_sdk_api_level" android:value="2.18" /><!-- most recent SDK version is recommended to leverage the latest APIs-->
-
Configura la modalità di debug o di rilascio per il tuo progetto come segue:
-
Per test e QA, impostare il valore della modalità di debug su Y. Questa modalità richiede l’elenco degli account Samsung consentiti per il test.
-
Per il rilascio sul mercato per gli utenti finali, impostare il valore della modalità debug su N.
<meta-data android:name="debug_mode" android:value="N" /><!--set to Y if debug mode-->
-
Iniziamo
Poiché le funzionalità principali di questo tutorial si basano sul provisioning push, dobbiamo prima inizializzare le classi SamsungPay e CardManager. Queste due classi accettano gli stessi parametri per la costruzione, ovvero Context e un’istanza della classe PartnerInfo. L’oggetto PartnerInfo contiene informazioni sui partner, che servono a convalidare la richiesta dall’applicazione emittente.
private val partnerInfo = PartnerInfoHolder.getInstance(context).partnerInfo
private val samsungPay= SamsungPay(context,partnerInfo)
private val cardManager = CardManager(context, partnerInfo)
Controlla se Samsung Wallet è pronto
Poiché l’SDK Samsung Pay dipende da Samsung Wallet, devi assicurarti che Samsung Wallet sia pronto per le transazioni. Controlla lo stato del Samsung Wallet prima della chiamata all’API SDK utilizzando il file getSamsungPayStatus()
metodo. Se ottieni lo stato “SPAY_READY”, puoi procedere ulteriormente per chiamare qualsiasi API. Per maggiori dettagli consultare la guida alla programmazione.
samsungPay.getSamsungPayStatus(object : StatusListener {
override fun onSuccess(status: Int, bundle: Bundle?) {
if(status == SpaySdk.SPAY_READY){
//Enable Samsung Pay SDK functionalities
}
else{
//Disable Samsung Pay SDK functionalities
}
}
override fun onFail(status: Int, bundle: Bundle?) {
//Disable Samsung Pay SDK functionalities
}
})
Controlla se la carta è stata aggiunta
Durante lo sviluppo, potresti dover sapere se la carta è già aggiunta a Samsung Wallet o meno. Per ottenere un elenco delle carte che sono già state aggiunte al portafoglio, utilizza il file getAllCards()
metodo. Per le operazioni relative alle carte, come l’acquisizione di carte da Samsung Wallet, la classe CardManager è quella responsabile da eseguire. Ciò significa che il getAllCards()
Il metodo è una proprietà della classe CardManager. Questo metodo accetta un bundle e un’interfaccia come parametri, quindi restituisce il risultato in base all’operazione.
NotaIL getSamsungPayStatus()
il metodo deve essere chiamato prima del getAllCards()
metodo. IL getAllCards()
il metodo non può restituire un elenco di carte se il metodo getSamsungPayStatus()
il metodo risponde con un codice diverso da SPAY_READY.
getAllCards()
Il metodo restituisce dati vuoti anche se è stata aggiunta una carta. Il motivo principale di questo problema è che il nome dell’emittente della carta e il nome dell’emittente sul portale Samsung Pay non sono gli stessi. Per ulteriori informazioni, consultare la pagina Domande frequenti e risoluzione dei problemi.val getCardListener: GetCardListener = object : GetCardListener {
override fun onSuccess(cards: List<Card>) {
//Show cards
}
override fun onFail(errorCode: Int, errorData: Bundle) {
//Show error
}
}
cardManager.getAllCards(null, getCardListener)
Configura il tuo carico utile
IL getWalletInfo()
Il metodo è progettato per richiedere informazioni sul portafoglio dall’applicazione Samsung Wallet prima di eseguire l’operazione di aggiunta della carta. Le informazioni sul portafoglio possono essere obbligatorie o facoltative per i fornitori di token per la configurazione del payload. Per Visa, le informazioni sul portafoglio sono obbligatorie e devi utilizzarle durante la creazione del carico utile.
val keys = ArrayList<String>()
keys.add(SamsungPay.WALLET_DM_ID)
keys.add(SamsungPay.DEVICE_ID)
keys.add(SamsungPay.WALLET_USER_ID)
val statusListener: StatusListener = object : StatusListener {
override fun onSuccess(status: Int, walletData: Bundle) {
val deviceId: String? = walletData.getString(SamsungPay.DEVICE_ID)
val walletAccountId: String? = walletData.getString(SamsungPay.WALLET_USER_ID)
//Build payload
}
override fun onFail(errorCode: Int, errorData: Bundle) {
//Show error
}
}
samsungPay.getWalletInfo(keys, statusListener)
Completa il provisioning push
L’ultimo comando per eseguire l’operazione di provisioning push nel nostro tutorial è il addCard()
metodo necessario per eseguire il provisioning push in Samsung Wallet. Il payload che abbiamo creato deve essere consegnato con il file addCard()
metodo come parametro. Il carico utile è una parte complicata in cui i partner a volte possono sentirsi confusi o fuorviati. Per essere chiari, Samsung non fornisce il carico utile per il provisioning push. Il carico utile è definito tra l’emittente e il fornitore di token e varia in base ai diversi emittenti e fornitori di token. Samsung consegna solo il carico utile al fornitore di token senza consumare nulla. IL addCard()
Il metodo accetta anche un callback come parametro per restituire il risultato in base all’operazione.
ManciaPer il provisioning push di una carta di pagamento, Samsung Pay non memorizza alcuna informazione sulla carta né fornisce alcun carico utile per l’aggiunta di carte. Pertanto, l’emittente deve fornire il payload in un formato definito nella specifica del fornitore di token. L’emittente e il fornitore di token hanno il proprio accordo di condivisione dei dati, carico utile e crittografia. Samsung Pay è solo un mezzo per questo processo.
val tokenizationProvider = AddCardInfo.PROVIDER_ABCD
val cardDetail = Bundle()
cardDetail.putString(EXTRA_PROVISION_PAYLOAD, payload)
var cardType = Card.CARD_TYPE_CREDIT_DEBIT
val addCardInfo = AddCardInfo(cardType, tokenizationProvider, cardDetail)
val addCardListener: AddCardListener = object : AddCardListener {
override fun onSuccess(status: Int, card: Card) {
//Show successful message
}
override fun onFail(errorCode: Int, errorData: Bundle) {
//Show error
}
override fun onProgress(currentCount: Int, totalCount: Int, bundleData: Bundle) {
//extra event for operation count
}
}
cardManager.addCard(addCardInfo, addCardListener)
Riepilogo
Il push provisioning è la potente esperienza di condivisione delle informazioni su un portafoglio digitale e i portafogli digitali trasformano questa esperienza a un livello superiore facilitando le transazioni in pochi secondi. Samsung Wallet gestisce queste operazioni e aiuta il sistema di pagamento digitale a compiere il passo successivo.
Per ulteriori informazioni sull’SDK Samsung Pay, visitare il portale per sviluppatori Samsung Pay. Se riscontri problemi durante l’implementazione dell’SDK, contatta il team di supporto per gli sviluppatori.
[ad_2]
Source link