---
description: Aplicação nativa obter autorização de usuário
---

# Autorização de App nativo

1. Fornecer o link de autorização aos usuários.

O link de autorização é concatenado com o Basic URL+_source_

| Parâmetro | Descrição                                    | Exemplo  |
| --------- | -------------------------------------------- | -------- |
| source    | uma string que pode reconhecer o comerciante | pagsmile |

{% hint style="danger" %}
Não coloque # na URL
{% endhint %}

{% tabs %}
{% tab title="Ambiente de Teste" %}
Basic URL

```
https://sandbox-wallet.pagsmile.com/authenticationYS?
```



Example:

```
https://sandbox-wallet.pagsmile.com/authenticationYS?source=pagsmile
```
{% endtab %}

{% tab title="Ambiente de Prod" %}
Basic URL

```
https://wallet.pagsmile.com/authenticationYS?
```



Example:

```
https://wallet.pagsmile.com/authenticationYS?source=pagsmile
```
{% endtab %}
{% endtabs %}

Os usuários serão redirecionados para esta página para autorizar.

![](https://769615050-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqrOAQlBotQqQNN7eWTJf%2Fuploads%2F5csylt4o17wCfHXHvxS4%2Fimage.png?alt=media\&token=b30e85ac-9f3c-4f9c-a8f3-ece29c2b9415)



2\. Os usuários autorizam e o comerciante recebe o UUID. Então o comerciante precisa de desenvolvimento interativo através de android e js, e então callback com a web view.



3\. Dentro da web view callback, o comerciante precisa vincular o ID do usuário com a UUID da carteira Pagsmile. Em seguida, a página de autorização pode ser fechada.

```
android:

String url = "https://wallet.pagsmile.com/authenticationYS?source="+merchant_app;

webView.loadUrl(url);

//add js monitor so html can call the app
webView.addJavascriptInterface(this, "PWA");
webView.setWebChromeClient(webChromeClient);
webView.setWebViewClient(webViewClient);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.setWebContentsDebuggingEnabled(true);
webSettings.setSupportMultipleWindows(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);//allow popup window
webSettings.setSupportMultipleWindows(true);
webSettings.setDomStorageEnabled(true);
webSettings.setDatabaseEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setBlockNetworkLoads(false); //whether get the resource from network

/**
* LOAD_CACHE_ONLY: only read local data from cache
* LOAD_DEFAULT: （default）according to cache-control, decide whether get data from network
* LOAD_NO_CACHE: Only get data from network without using cache
* LOAD_CACHE_ELSE_NETWORK，use data from cache whatever if expired, whatever there is cache or not
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
//support screen zoom
webSettings.setSupportZoom(true);
webSettings.setBuiltInZoomControls(true);
//hide webview zoom button
webSettings.setDisplayZoomControls(false);
webSettings.setUseWideViewPort(true); //adjust photo size to fit webview
webSettings.setLoadWithOverviewMode(true); // zoom size to fit screen
  
@JavascriptInterface
public void bindSuc(String uuid) {
    Log.i(TAG, "bindSuc: uuid = "+uuid);
    //bound logic code {}
    finish();
}


OC:
[self.webView.userContentController addScriptMessageHandler:self name:@"bindSuc"];

```
