{"_id":"5845b77739950c1b002afe4f","isReference":false,"sync_unique":"","updates":[],"user":"57ea79f61780cd170064f273","createdAt":"2016-12-05T18:52:39.069Z","link_external":false,"link_url":"","project":"5845b77639950c1b002afe49","slug":"getting-started","api":{"url":"","auth":"required","params":[],"results":{"codes":[]},"settings":""},"category":"5845b77739950c1b002afe4d","excerpt":"SDK de integração para iOS.","hidden":false,"type":"basic","__v":0,"body":"> Download do último release pode ser feito em [releases.](https://github.com/stone-pagamentos/sdk-ios-v2/releases) \n\n\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Funcionalidades\"\n}\n[/block]\n* Ativação do Stone Code\n\n* Criação de sessão com o pinpad\n\n* Download / carragamento das tabelas AID e CAPK\n\n* Envio transações\n\n* Cancelamento de transações\n\n* Listagem das transações\n\n* Envio de recibo por email\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Requisitos\"\n}\n[/block]\n* iOS 8.0+\n\n* Xcode 7.1+\n\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Contato\"\n}\n[/block]\nEm caso de problemas entrar em contato pelo email [suporteios@stone.com.br](mailto:suporteios@stone.com.br).\n\n\n\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Instalação\"\n}\n[/block]\nAntes de começar a usar o StoneSDK é necessario seguir alguns procedimentos.\n\nNo target do projeto acesse a guia General e em Embedded Binaries adicione o StoneSDK.framework (é necessario que o arquivo esteja no diretorio do projeto).\n\nAinda no target do projeto, na guia Info adicione a propriedade Supported external accessory protocols em Custom iOS Target Properties e adicione os protocolos dos dispositivos bluetooth que terão permissão de se comunicar com o aplicativo.\n\nNa guia Build Settings, em Build Options, selecione No para a configuração Enable Bitcode.\n\nÉ necessário que a aplicação habilite TLS v1.2 para a comunicação com nossos servidores. Para isso adicione as linhas de código a seguir no Info.plist (clique no arquivo Info.plist com o botão direito do mouse e selecione Open As > Source Code):\n\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<key>NSAppTransportSecurity</key>\\n    <dict>\\n        <key>NSExceptionDomains</key>\\n        <dict>\\n            <key>stone.com.br</key>\\n            <dict>\\n                <key>NSExceptionMinimumTLSVersion</key>\\n                <string>TLSV1.2</string>\\n                <key>NSExceptionRequiresForwardSecrecy</key>\\n                <false/>\\n                <key>NSIncludesSubdomains</key>\\n                <true/>\\n            </dict>\\n        </dict>\\n    </dict>\",\n      \"language\": \"xml\",\n      \"name\": \"Info.plist\"\n    }\n  ]\n}\n[/block]\nO mesmo deverá ficar como na imagem abaixo:\n\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/c60a300-plist.png\",\n        \"plist.png\",\n        409,\n        274,\n        \"#2d2c34\"\n      ]\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Lista de providers disponiveis\"\n}\n[/block]\n* STNPinPadConnectionProvider - Estabelece sessão entre o aplicativo e o pinpad\n\n* STNStoneCodeActivationProvider - Ativa o Stone Code do lojista\n\n* STNTableDownloaderProvider - Baixa tabelas AID e CAPK do servidor para o celular\n\n* STNTableLoaderProvider - Carrega as tabelas AID e CAPK para o pinpad\n\n* STNTransactionProvider - Captura o cartão do comprador e envia a transação\n\n* STNTransactionListProvider - Lista transações com opção de listar pelo cartão do comprador\n\n* STNMerchantListProvider - Lista lojistas ativados no aplicativo\n\n* STNCancellationProvider - Cancelamento de transações\n\n* STNMailProvider - Envia email com comprovante da transação ou cancelamento\n\n* STNValidationProvider - Responsavel pelas seguintes validações: se há conexão com a internet, se o Stone Code está ativado, se há conexão com o pinpad e se as tabelas já foram baixadas\n\n* STNCardProvider - Captura os 4 últimos números do cartão\n\n* STNDisplayProvider - Exibe mensagem de até 32 caracteres no visor do pinpad\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Lista de models disponiveis\"\n}\n[/block]\n* STNTransactionModel - Model com propriedades da transação\n\n* STNMerchantModel - Model com propriedades do lojista\n\n* STNPinpadModel - Model com propriedades do pinpad\n\n* STNAddressModel - Model com propriedades de endereço do lojista","githubsync":"","next":{"pages":[],"description":""},"order":999,"title":"Introdução","version":"5845b77639950c1b002afe4c","childrenPages":[]}

Introdução

SDK de integração para iOS.

> Download do último release pode ser feito em [releases.](https://github.com/stone-pagamentos/sdk-ios-v2/releases) [block:api-header] { "type": "basic", "title": "Funcionalidades" } [/block] * Ativação do Stone Code * Criação de sessão com o pinpad * Download / carragamento das tabelas AID e CAPK * Envio transações * Cancelamento de transações * Listagem das transações * Envio de recibo por email [block:api-header] { "type": "basic", "title": "Requisitos" } [/block] * iOS 8.0+ * Xcode 7.1+ [block:api-header] { "type": "basic", "title": "Contato" } [/block] Em caso de problemas entrar em contato pelo email [suporteios@stone.com.br](mailto:suporteios@stone.com.br). [block:api-header] { "type": "basic", "title": "Instalação" } [/block] Antes de começar a usar o StoneSDK é necessario seguir alguns procedimentos. No target do projeto acesse a guia General e em Embedded Binaries adicione o StoneSDK.framework (é necessario que o arquivo esteja no diretorio do projeto). Ainda no target do projeto, na guia Info adicione a propriedade Supported external accessory protocols em Custom iOS Target Properties e adicione os protocolos dos dispositivos bluetooth que terão permissão de se comunicar com o aplicativo. Na guia Build Settings, em Build Options, selecione No para a configuração Enable Bitcode. É necessário que a aplicação habilite TLS v1.2 para a comunicação com nossos servidores. Para isso adicione as linhas de código a seguir no Info.plist (clique no arquivo Info.plist com o botão direito do mouse e selecione Open As > Source Code): [block:code] { "codes": [ { "code": "<key>NSAppTransportSecurity</key>\n <dict>\n <key>NSExceptionDomains</key>\n <dict>\n <key>stone.com.br</key>\n <dict>\n <key>NSExceptionMinimumTLSVersion</key>\n <string>TLSV1.2</string>\n <key>NSExceptionRequiresForwardSecrecy</key>\n <false/>\n <key>NSIncludesSubdomains</key>\n <true/>\n </dict>\n </dict>\n </dict>", "language": "xml", "name": "Info.plist" } ] } [/block] O mesmo deverá ficar como na imagem abaixo: [block:image] { "images": [ { "image": [ "https://files.readme.io/c60a300-plist.png", "plist.png", 409, 274, "#2d2c34" ] } ] } [/block] [block:api-header] { "type": "basic", "title": "Lista de providers disponiveis" } [/block] * STNPinPadConnectionProvider - Estabelece sessão entre o aplicativo e o pinpad * STNStoneCodeActivationProvider - Ativa o Stone Code do lojista * STNTableDownloaderProvider - Baixa tabelas AID e CAPK do servidor para o celular * STNTableLoaderProvider - Carrega as tabelas AID e CAPK para o pinpad * STNTransactionProvider - Captura o cartão do comprador e envia a transação * STNTransactionListProvider - Lista transações com opção de listar pelo cartão do comprador * STNMerchantListProvider - Lista lojistas ativados no aplicativo * STNCancellationProvider - Cancelamento de transações * STNMailProvider - Envia email com comprovante da transação ou cancelamento * STNValidationProvider - Responsavel pelas seguintes validações: se há conexão com a internet, se o Stone Code está ativado, se há conexão com o pinpad e se as tabelas já foram baixadas * STNCardProvider - Captura os 4 últimos números do cartão * STNDisplayProvider - Exibe mensagem de até 32 caracteres no visor do pinpad [block:api-header] { "type": "basic", "title": "Lista de models disponiveis" } [/block] * STNTransactionModel - Model com propriedades da transação * STNMerchantModel - Model com propriedades do lojista * STNPinpadModel - Model com propriedades do pinpad * STNAddressModel - Model com propriedades de endereço do lojista
> Download do último release pode ser feito em [releases.](https://github.com/stone-pagamentos/sdk-ios-v2/releases) [block:api-header] { "type": "basic", "title": "Funcionalidades" } [/block] * Ativação do Stone Code * Criação de sessão com o pinpad * Download / carragamento das tabelas AID e CAPK * Envio transações * Cancelamento de transações * Listagem das transações * Envio de recibo por email [block:api-header] { "type": "basic", "title": "Requisitos" } [/block] * iOS 8.0+ * Xcode 7.1+ [block:api-header] { "type": "basic", "title": "Contato" } [/block] Em caso de problemas entrar em contato pelo email [suporteios@stone.com.br](mailto:suporteios@stone.com.br). [block:api-header] { "type": "basic", "title": "Instalação" } [/block] Antes de começar a usar o StoneSDK é necessario seguir alguns procedimentos. No target do projeto acesse a guia General e em Embedded Binaries adicione o StoneSDK.framework (é necessario que o arquivo esteja no diretorio do projeto). Ainda no target do projeto, na guia Info adicione a propriedade Supported external accessory protocols em Custom iOS Target Properties e adicione os protocolos dos dispositivos bluetooth que terão permissão de se comunicar com o aplicativo. Na guia Build Settings, em Build Options, selecione No para a configuração Enable Bitcode. É necessário que a aplicação habilite TLS v1.2 para a comunicação com nossos servidores. Para isso adicione as linhas de código a seguir no Info.plist (clique no arquivo Info.plist com o botão direito do mouse e selecione Open As > Source Code): [block:code] { "codes": [ { "code": "<key>NSAppTransportSecurity</key>\n <dict>\n <key>NSExceptionDomains</key>\n <dict>\n <key>stone.com.br</key>\n <dict>\n <key>NSExceptionMinimumTLSVersion</key>\n <string>TLSV1.2</string>\n <key>NSExceptionRequiresForwardSecrecy</key>\n <false/>\n <key>NSIncludesSubdomains</key>\n <true/>\n </dict>\n </dict>\n </dict>", "language": "xml", "name": "Info.plist" } ] } [/block] O mesmo deverá ficar como na imagem abaixo: [block:image] { "images": [ { "image": [ "https://files.readme.io/c60a300-plist.png", "plist.png", 409, 274, "#2d2c34" ] } ] } [/block] [block:api-header] { "type": "basic", "title": "Lista de providers disponiveis" } [/block] * STNPinPadConnectionProvider - Estabelece sessão entre o aplicativo e o pinpad * STNStoneCodeActivationProvider - Ativa o Stone Code do lojista * STNTableDownloaderProvider - Baixa tabelas AID e CAPK do servidor para o celular * STNTableLoaderProvider - Carrega as tabelas AID e CAPK para o pinpad * STNTransactionProvider - Captura o cartão do comprador e envia a transação * STNTransactionListProvider - Lista transações com opção de listar pelo cartão do comprador * STNMerchantListProvider - Lista lojistas ativados no aplicativo * STNCancellationProvider - Cancelamento de transações * STNMailProvider - Envia email com comprovante da transação ou cancelamento * STNValidationProvider - Responsavel pelas seguintes validações: se há conexão com a internet, se o Stone Code está ativado, se há conexão com o pinpad e se as tabelas já foram baixadas * STNCardProvider - Captura os 4 últimos números do cartão * STNDisplayProvider - Exibe mensagem de até 32 caracteres no visor do pinpad [block:api-header] { "type": "basic", "title": "Lista de models disponiveis" } [/block] * STNTransactionModel - Model com propriedades da transação * STNMerchantModel - Model com propriedades do lojista * STNPinpadModel - Model com propriedades do pinpad * STNAddressModel - Model com propriedades de endereço do lojista
{"_id":"5845ba739f6fbb1b00430861","link_external":false,"order":999,"type":"basic","__v":0,"api":{"params":[],"url":"","results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required"},"body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Importação das classes do SDK\"\n}\n[/block]\nPara acessar todas as classes do SDK basta importar o StoneSDK.\n\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"#import <StoneSDK/StoneSDK.h>\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Criação de sessão com o pinpad\"\n}\n[/block]\nPara realizar qualquer comunicação com o pinpad é necessario que se crie uma sessão. Lembrando que a conexão com o dispositivo bluetooth deve ser feita no menu de Ajustes do iOS.\n\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Antes de qualquer comunicação entre o aplicativo e o pinpad, uma sessão deve ser estabelecida.\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[STNPinPadConnectionProvider connectToPinpad:^(BOOL succeeded, NSError *error) {\\n        if (succeeded) // verifica se a requisição ocorreu com sucesso\\n        {\\n            // executa alguma coisa\\n        } else\\n        {\\n            // trata o erro\\n            NSLog(@\\\"%@\\\", error.description);\\n        }\\n    }];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Recomendamos que esse método seja executado a cada 3 minutos quando o aplicativo estiver em background caso usem o pinpad Gertec MOBI PIN 10. O dispositivo em questão apresentou problemas ao ficar muito tempo sem comunicação.\"\n}\n[/block]\n**Possivel código de erro**\n\n303\n\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Ativação do Stone Code\"\n}\n[/block]\nO provider STNStoneCodeActivationProvider é responsavel por ativar e desativar o lojista e possui os métodos activateStoneCode:withblock:, deactivateMerchant: e deactivateMerchantWithStoneCode.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"O Stone Code deve ser ativado antes de realizar qualquer operação na Stone.\"\n}\n[/block]\nPara ativar o lojista no aplicativo deve ser usado o método activateStoneCode:withblock:, que recebe uma string com o Stone Code do lojista como parâmetro.\n\n\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"NSString *stoneCode = @\\\"999999999\\\"; // Stone Code do lojista\\n\\n[STNStoneCodeActivationProvider activateStoneCode:stoneCode withBlock:^(BOOL succeeded, NSError *error)\\n{\\n    if (succeeded) // verifica se a requisição ocorreu com sucesso\\n    {\\n        // em caso de sucesso,\\n        // executa alguma coisa\\n    } else\\n    {\\n        // em caso de erro,\\n        // faz alguma tratativa\\n        NSLog(@\\\"%@\\\", error.description);\\n    }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\nUma das opções para desativar o lojista no aplicativo é o método deactivateMerchant:, que recebe o lojista a ser desativado (um objeto do tipo STNMerchantModel) como parâmetro.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Esse método excluirá o lojista do applicativo junto de todas as transações realizadas pelo mesmo.\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"STNMerchantModel *merchant = [STNMerchantListProvider listMerchants][0]; // Primeiro lojista da lista\\n\\n[STNStoneCodeActivationProvider deactivateMerchant:merchant];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\nOutra opção para desativar o lojista no aplicativo é o método deactivateMerchantWithStoneCode:, que recebe o Stone Code por parâmetro.\n\n\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"NSString *stoneCode = @\\\"999999999\\\"; // Stone Code do lojista\\n\\n[STNStoneCodeActivationProvider deactivateMerchantWithStoneCode:stoneCode];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis códigos de erro**\n\n101, 202, 209","createdAt":"2016-12-05T19:05:23.476Z","hidden":false,"githubsync":"","link_url":"","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","next":{"pages":[],"description":""},"slug":"utilização","title":"Utilização","user":"57ea79f61780cd170064f273","category":"5845b77739950c1b002afe4d","excerpt":"","isReference":false,"sync_unique":"","updates":[],"childrenPages":[]}

Utilização


[block:api-header] { "type": "basic", "title": "Importação das classes do SDK" } [/block] Para acessar todas as classes do SDK basta importar o StoneSDK. [block:code] { "codes": [ { "code": "#import <StoneSDK/StoneSDK.h>", "language": "objectivec" } ] } [/block] [block:api-header] { "type": "basic", "title": "Criação de sessão com o pinpad" } [/block] Para realizar qualquer comunicação com o pinpad é necessario que se crie uma sessão. Lembrando que a conexão com o dispositivo bluetooth deve ser feita no menu de Ajustes do iOS. [block:callout] { "type": "info", "body": "Antes de qualquer comunicação entre o aplicativo e o pinpad, uma sessão deve ser estabelecida." } [/block] [block:code] { "codes": [ { "code": "[STNPinPadConnectionProvider connectToPinpad:^(BOOL succeeded, NSError *error) {\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // executa alguma coisa\n } else\n {\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n }];", "language": "objectivec" } ] } [/block] [block:callout] { "type": "info", "body": "Recomendamos que esse método seja executado a cada 3 minutos quando o aplicativo estiver em background caso usem o pinpad Gertec MOBI PIN 10. O dispositivo em questão apresentou problemas ao ficar muito tempo sem comunicação." } [/block] **Possivel código de erro** 303 [block:api-header] { "type": "basic", "title": "Ativação do Stone Code" } [/block] O provider STNStoneCodeActivationProvider é responsavel por ativar e desativar o lojista e possui os métodos activateStoneCode:withblock:, deactivateMerchant: e deactivateMerchantWithStoneCode. [block:callout] { "type": "info", "body": "O Stone Code deve ser ativado antes de realizar qualquer operação na Stone." } [/block] Para ativar o lojista no aplicativo deve ser usado o método activateStoneCode:withblock:, que recebe uma string com o Stone Code do lojista como parâmetro. [block:code] { "codes": [ { "code": "NSString *stoneCode = @\"999999999\"; // Stone Code do lojista\n\n[STNStoneCodeActivationProvider activateStoneCode:stoneCode withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // faz alguma tratativa\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] Uma das opções para desativar o lojista no aplicativo é o método deactivateMerchant:, que recebe o lojista a ser desativado (um objeto do tipo STNMerchantModel) como parâmetro. [block:callout] { "type": "info", "body": "Esse método excluirá o lojista do applicativo junto de todas as transações realizadas pelo mesmo." } [/block] [block:code] { "codes": [ { "code": "STNMerchantModel *merchant = [STNMerchantListProvider listMerchants][0]; // Primeiro lojista da lista\n\n[STNStoneCodeActivationProvider deactivateMerchant:merchant];", "language": "objectivec" } ] } [/block] Outra opção para desativar o lojista no aplicativo é o método deactivateMerchantWithStoneCode:, que recebe o Stone Code por parâmetro. [block:code] { "codes": [ { "code": "NSString *stoneCode = @\"999999999\"; // Stone Code do lojista\n\n[STNStoneCodeActivationProvider deactivateMerchantWithStoneCode:stoneCode];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 202, 209
[block:api-header] { "type": "basic", "title": "Importação das classes do SDK" } [/block] Para acessar todas as classes do SDK basta importar o StoneSDK. [block:code] { "codes": [ { "code": "#import <StoneSDK/StoneSDK.h>", "language": "objectivec" } ] } [/block] [block:api-header] { "type": "basic", "title": "Criação de sessão com o pinpad" } [/block] Para realizar qualquer comunicação com o pinpad é necessario que se crie uma sessão. Lembrando que a conexão com o dispositivo bluetooth deve ser feita no menu de Ajustes do iOS. [block:callout] { "type": "info", "body": "Antes de qualquer comunicação entre o aplicativo e o pinpad, uma sessão deve ser estabelecida." } [/block] [block:code] { "codes": [ { "code": "[STNPinPadConnectionProvider connectToPinpad:^(BOOL succeeded, NSError *error) {\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // executa alguma coisa\n } else\n {\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n }];", "language": "objectivec" } ] } [/block] [block:callout] { "type": "info", "body": "Recomendamos que esse método seja executado a cada 3 minutos quando o aplicativo estiver em background caso usem o pinpad Gertec MOBI PIN 10. O dispositivo em questão apresentou problemas ao ficar muito tempo sem comunicação." } [/block] **Possivel código de erro** 303 [block:api-header] { "type": "basic", "title": "Ativação do Stone Code" } [/block] O provider STNStoneCodeActivationProvider é responsavel por ativar e desativar o lojista e possui os métodos activateStoneCode:withblock:, deactivateMerchant: e deactivateMerchantWithStoneCode. [block:callout] { "type": "info", "body": "O Stone Code deve ser ativado antes de realizar qualquer operação na Stone." } [/block] Para ativar o lojista no aplicativo deve ser usado o método activateStoneCode:withblock:, que recebe uma string com o Stone Code do lojista como parâmetro. [block:code] { "codes": [ { "code": "NSString *stoneCode = @\"999999999\"; // Stone Code do lojista\n\n[STNStoneCodeActivationProvider activateStoneCode:stoneCode withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // faz alguma tratativa\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] Uma das opções para desativar o lojista no aplicativo é o método deactivateMerchant:, que recebe o lojista a ser desativado (um objeto do tipo STNMerchantModel) como parâmetro. [block:callout] { "type": "info", "body": "Esse método excluirá o lojista do applicativo junto de todas as transações realizadas pelo mesmo." } [/block] [block:code] { "codes": [ { "code": "STNMerchantModel *merchant = [STNMerchantListProvider listMerchants][0]; // Primeiro lojista da lista\n\n[STNStoneCodeActivationProvider deactivateMerchant:merchant];", "language": "objectivec" } ] } [/block] Outra opção para desativar o lojista no aplicativo é o método deactivateMerchantWithStoneCode:, que recebe o Stone Code por parâmetro. [block:code] { "codes": [ { "code": "NSString *stoneCode = @\"999999999\"; // Stone Code do lojista\n\n[STNStoneCodeActivationProvider deactivateMerchantWithStoneCode:stoneCode];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 202, 209
{"_id":"5845bb909f6fbb1b00430862","category":"5845b77739950c1b002afe4d","hidden":false,"slug":"tabelas-aid-e-capk","user":"57ea79f61780cd170064f273","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"code":"{}","name":"","status":400,"language":"json"}]},"settings":"","auth":"required","params":[],"url":""},"excerpt":"","isReference":false,"link_url":"","sync_unique":"","updates":[],"__v":0,"body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Download das tabelas AID e CAPK\"\n}\n[/block]\nO provider STNTableDownloaderProvider possui o método downloadTables que faz o download das tabelas AID e CAPK para o dispositivo iOS.\n\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"As tabelas AID e CAPK são necessarias para fazer transações EMV.\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[STNTableDownloaderProvider downLoadTables:^(BOOL succeeded, NSError *error)\\n{\\n    if (succeeded) // verifica se a requisição ocorreu com sucesso\\n    {\\n            // em caso de sucesso,\\n            // executa alguma coisa\\n    } else\\n    {\\n                // em caso de erro,\\n        // trata o erro\\n        NSLog(@\\\"%@\\\", error.description);\\n    }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis códigos de erro**\n\n101, 201, 601\n\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Carregamento das tabelas AID e CAPK para o pinpad\"\n}\n[/block]\nO provider STNTableLoaderProvider possui o método loadTables que faz o update das tabelas baixadas no dispositivo iOS para o pinpad.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[STNTableLoaderProvider loadTables:^(BOOL succeeded, NSError *error)\\n{\\n    if (succeeded) // verifica se a requisição ocorreu com sucesso\\n    {\\n            // em caso de sucesso,\\n            // executa alguma coisa\\n    } else\\n    {\\n            // em caso de erro,\\n            // trata o erro\\n        NSLog(@\\\"%@\\\", error.description);\\n    }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis código de erro**\n\n303, 304","next":{"pages":[],"description":""},"project":"5845b77639950c1b002afe49","title":"Tabelas AID e CAPK","type":"basic","version":"5845b77639950c1b002afe4c","githubsync":"","link_external":false,"order":999,"createdAt":"2016-12-05T19:10:08.565Z","childrenPages":[]}

Tabelas AID e CAPK


[block:api-header] { "type": "basic", "title": "Download das tabelas AID e CAPK" } [/block] O provider STNTableDownloaderProvider possui o método downloadTables que faz o download das tabelas AID e CAPK para o dispositivo iOS. [block:callout] { "type": "info", "body": "As tabelas AID e CAPK são necessarias para fazer transações EMV." } [/block] [block:code] { "codes": [ { "code": "[STNTableDownloaderProvider downLoadTables:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 201, 601 [block:api-header] { "type": "basic", "title": "Carregamento das tabelas AID e CAPK para o pinpad" } [/block] O provider STNTableLoaderProvider possui o método loadTables que faz o update das tabelas baixadas no dispositivo iOS para o pinpad. [block:code] { "codes": [ { "code": "[STNTableLoaderProvider loadTables:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis código de erro** 303, 304
[block:api-header] { "type": "basic", "title": "Download das tabelas AID e CAPK" } [/block] O provider STNTableDownloaderProvider possui o método downloadTables que faz o download das tabelas AID e CAPK para o dispositivo iOS. [block:callout] { "type": "info", "body": "As tabelas AID e CAPK são necessarias para fazer transações EMV." } [/block] [block:code] { "codes": [ { "code": "[STNTableDownloaderProvider downLoadTables:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 201, 601 [block:api-header] { "type": "basic", "title": "Carregamento das tabelas AID e CAPK para o pinpad" } [/block] O provider STNTableLoaderProvider possui o método loadTables que faz o update das tabelas baixadas no dispositivo iOS para o pinpad. [block:code] { "codes": [ { "code": "[STNTableLoaderProvider loadTables:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis código de erro** 303, 304
{"_id":"5845be5d9f6fbb1b00430865","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"category":"5845b77739950c1b002afe4d","isReference":false,"slug":"envio-de-transações","updates":[],"__v":0,"excerpt":"","link_external":false,"project":"5845b77639950c1b002afe49","type":"basic","user":"57ea79f61780cd170064f273","hidden":false,"next":{"pages":[],"description":""},"order":999,"sync_unique":"","link_url":"","title":"Envio de Transações","version":"5845b77639950c1b002afe4c","body":"As transações são enviadas usando o método sendTransaction:withBlock do provider STNTransactionProvider.\n\nO método sendTransaction:withBlock: deve receber um objeto STNTransactionModel como parâmetro. O objeto STNTransactionModel deve ter as seguintes propriedades definidas:\n\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Nome\",\n    \"h-1\": \"Tipo\",\n    \"h-2\": \"Descrição\",\n    \"h-3\": \"Obrigatório\",\n    \"0-0\": \"amount\",\n    \"0-1\": \"NSNumber\",\n    \"0-2\": \"É o valor da transação e deve ser passado no formato de centavos. Por exemplo: caso queira enviar uma transação no valor de R$ 56,45, deve ser passado um NSNumber contendo o valor de 5645. Uma transação no valor de R$ 0,05 deve ser passada como 5.\",\n    \"0-3\": \"Sim\",\n    \"1-0\": \"type(*)\",\n    \"1-1\": \"STNTransactionTypeSimplified\",\n    \"1-2\": \"Essa propriedade deve ser definida com o tipo da transação (débito ou crédito). Para isso podem ser usados os enums STNTransactionTypeSimplifiedCredit para crédito ou STNTransactionTypeSimplifiedDebit para débito.\",\n    \"2-0\": \"instalmentAmount(**)\",\n    \"1-3\": \"Sim\",\n    \"2-1\": \"STNTransactionInstalmentAmount\",\n    \"2-2\": \"Propriedade que define o número de parcelas da transação.\",\n    \"2-3\": \"Sim\",\n    \"3-0\": \"instalmentType(***)\",\n    \"3-1\": \"STNInstalmentType\",\n    \"3-2\": \"Define o tipo de parcelamento que será efetuado\",\n    \"3-3\": \"Sim\",\n    \"4-0\": \"initiatorTransactionKey\",\n    \"4-1\": \"NSString\",\n    \"5-1\": \"NSString\",\n    \"4-2\": \"Deve conter uma string contendo um valor único para identificação da transação. Caso não seja definido, um identificador único será gerado automaticamente.\",\n    \"4-3\": \"Não\",\n    \"5-0\": \"shortName\",\n    \"5-2\": \"Define um nome customizado que será exibido na fatura do cliente. O máximo de caracteres recomendado para que esse texto seja exibido corretamente em estratos e faturas é 11. Caso não seja definido, será exibido o nome cadastrado para o Stone Code em uso.\",\n    \"5-3\": \"Não\",\n    \"6-0\": \"merchant\",\n    \"6-1\": \"NSMerchantModel\",\n    \"6-2\": \"Essa propriedade deve ser definida quando o aplicativo possuir mais de 1 Stone Code ativado. A mesma pode ser usada para definir o lojista (Stone Code) que está passando a transação, caso tenha mais de 1. O valor default será sempre o primeiro Stone Code que foi ativado no aplicativo.\",\n    \"6-3\": \"Não\"\n  },\n  \"cols\": 4,\n  \"rows\": 7\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"type(*)\",\n  \"body\": \"Para isso podem ser usados os enums:\\n\\n * STNTransactionTypeSimplifiedCredit para crédito\\n\\n * STNTransactionTypeSimplifiedDebit para débito.\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"instalmentAmount (**)\",\n  \"body\": \"Um dos seguintes enums devem ser utilizados :\\n\\n* STNTransactionInstalmentAmountOne - para 1x (à vista)\\n\\n* STNTransactionInstalmentAmountTwo - para 2x\\n\\n* STNTransactionInstalmentAmountThree - para 3x\\n\\n* STNTransactionInstalmentAmountFour - para 4x\\n\\n* STNTransactionInstalmentAmountFive - para 5x\\n\\n* STNTransactionInstalmentAmountSix - para 6x\\n\\n* STNTransactionInstalmentAmountSeven - para 7x\\n\\n* STNTransactionInstalmentAmountEight - para 8x\\n\\n* STNTransactionInstalmentAmountNine - para 9x\\n\\n* STNTransactionInstalmentAmountTen - para 10x\\n\\n* STNTransactionInstalmentAmountEleven - para 11x\\n\\n* STNTransactionInstalmentAmountTwelve - para 12x\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"instalmentType(***)\",\n  \"body\": \"Um dos seguintes enums devem ser usados:\\n\\n* STNInstalmentTypeNone - nenhum parcelamento, deve ser usado para transações à vista\\n\\n* STNInstalmentTypeMerchant - parcelamento com o adquirente (sem juros)\\n\\n* STNInstalmentTypeIssuer - parcelamento com o emissor (juros do emissor do cartão)\"\n}\n[/block]\nExemplo\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"STNTransactionModel *transaction = [[STNTransactionModel alloc] init];\\n\\ntransaction.amount = [NSNumber numberWithInt:1000]; // valor correspondente a R$ 10,00\\ntransaction.type = STNTransactionTypeSimplifiedDebit; // transação no débito\\ntransaction.instalmentAmount = STNTransactionInstalmentAmountOne; // número de parcelas: 1\\ntransaction.instalmentType = STNInstalmentTypeNone; // tipo de parcelamento: nenhum\\ntransaction.shortName = @\\\"Minha Loja\\\"; // nome customizado na fatura\\ntransaction.initiatorTransactionKey = @\\\"9999999999999\\\"; // ITK customizado\\n\\n[STNTransactionProvider sendTransaction:transaction withBlock:^(BOOL succeeded, NSError *error) {\\n        if (succeeded) // verifica se a requisição ocorreu com sucesso\\n        {\\n                // em caso de sucesso,\\n                // executa alguma coisa\\n        } else\\n        {\\n            // em caso de erro,\\n            // trata o erro\\n            NSLog(@\\\"%@\\\", error.description);\\n        }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Mensagens de notificação\"\n}\n[/block]\nDurante a execução de uma transação o pinpad pode envar mensagens de notificação. Essas mensagens são exibidas na tela do pinpad e também podem ser acessadas dentro da aplicação usando o NSNotificationCenter. Basta adicionar um observer antes do envio da transação disparando um método que usará a notificação recebida. A notificação vem como uma string. Abaixo um exemplo:\n\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"- (void)sendTransaction\\n{\\n    // adiciona o observer que executará o método 'handleNotification:'\\n        // o SDK provê o define 'PINPAD_MESSAGE' que possui o nome que a notificação deverá ter\\n    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:PINPAD_MESSAGE object:nil];\\n\\n    STNTransactionModel *transaction = [[STNTransactionModel alloc] init];\\n\\n    transaction.amount = [NSNumber numberWithInt:1000];\\n    transaction.type = STNTransactionTypeSimplifiedCredit;\\n    transaction.instalmentAmount = STNTransactionInstalmentAmountOne;\\n    transaction.instalmentType = STNInstalmentTypeNone;\\n\\n    [STNTransactionProvider sendTransaction:transaction withBlock:^(BOOL succeeded, NSError *error) {\\n\\n              if (succeeded) // verifica se a requisição ocorreu com sucesso\\n              {\\n                    // em caso de sucesso,\\n                    // executa alguma coisa\\n            } else\\n            {\\n                // em caso de erro,\\n                // trata o erro\\n                NSLog(@\\\"%@\\\", error.description);\\n            }\\n        // remove o observer\\n        [[NSNotificationCenter defaultCenter] removeObserver:self name:PINPAD_MESSAGE object:nil];\\n    }];\\n}\\n\\n- (void)handleNotification:(NSNotification *) notification\\n{\\n    // converte a notificação para string\\n    NSString *notificationString = [notification object];\\n    // imprime a string recebida\\n    NSLog(@\\\"Mensagem do pinpad: %@\\\", notificationString);\\n}\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis códigos de erro**\n\n105, 201, 203, 204, 205, 206, 207, 211, 214, 303, 601","createdAt":"2016-12-05T19:22:05.402Z","githubsync":"","childrenPages":[]}

Envio de Transações


As transações são enviadas usando o método sendTransaction:withBlock do provider STNTransactionProvider. O método sendTransaction:withBlock: deve receber um objeto STNTransactionModel como parâmetro. O objeto STNTransactionModel deve ter as seguintes propriedades definidas: [block:parameters] { "data": { "h-0": "Nome", "h-1": "Tipo", "h-2": "Descrição", "h-3": "Obrigatório", "0-0": "amount", "0-1": "NSNumber", "0-2": "É o valor da transação e deve ser passado no formato de centavos. Por exemplo: caso queira enviar uma transação no valor de R$ 56,45, deve ser passado um NSNumber contendo o valor de 5645. Uma transação no valor de R$ 0,05 deve ser passada como 5.", "0-3": "Sim", "1-0": "type(*)", "1-1": "STNTransactionTypeSimplified", "1-2": "Essa propriedade deve ser definida com o tipo da transação (débito ou crédito). Para isso podem ser usados os enums STNTransactionTypeSimplifiedCredit para crédito ou STNTransactionTypeSimplifiedDebit para débito.", "2-0": "instalmentAmount(**)", "1-3": "Sim", "2-1": "STNTransactionInstalmentAmount", "2-2": "Propriedade que define o número de parcelas da transação.", "2-3": "Sim", "3-0": "instalmentType(***)", "3-1": "STNInstalmentType", "3-2": "Define o tipo de parcelamento que será efetuado", "3-3": "Sim", "4-0": "initiatorTransactionKey", "4-1": "NSString", "5-1": "NSString", "4-2": "Deve conter uma string contendo um valor único para identificação da transação. Caso não seja definido, um identificador único será gerado automaticamente.", "4-3": "Não", "5-0": "shortName", "5-2": "Define um nome customizado que será exibido na fatura do cliente. O máximo de caracteres recomendado para que esse texto seja exibido corretamente em estratos e faturas é 11. Caso não seja definido, será exibido o nome cadastrado para o Stone Code em uso.", "5-3": "Não", "6-0": "merchant", "6-1": "NSMerchantModel", "6-2": "Essa propriedade deve ser definida quando o aplicativo possuir mais de 1 Stone Code ativado. A mesma pode ser usada para definir o lojista (Stone Code) que está passando a transação, caso tenha mais de 1. O valor default será sempre o primeiro Stone Code que foi ativado no aplicativo.", "6-3": "Não" }, "cols": 4, "rows": 7 } [/block] [block:callout] { "type": "info", "title": "type(*)", "body": "Para isso podem ser usados os enums:\n\n * STNTransactionTypeSimplifiedCredit para crédito\n\n * STNTransactionTypeSimplifiedDebit para débito." } [/block] [block:callout] { "type": "info", "title": "instalmentAmount (**)", "body": "Um dos seguintes enums devem ser utilizados :\n\n* STNTransactionInstalmentAmountOne - para 1x (à vista)\n\n* STNTransactionInstalmentAmountTwo - para 2x\n\n* STNTransactionInstalmentAmountThree - para 3x\n\n* STNTransactionInstalmentAmountFour - para 4x\n\n* STNTransactionInstalmentAmountFive - para 5x\n\n* STNTransactionInstalmentAmountSix - para 6x\n\n* STNTransactionInstalmentAmountSeven - para 7x\n\n* STNTransactionInstalmentAmountEight - para 8x\n\n* STNTransactionInstalmentAmountNine - para 9x\n\n* STNTransactionInstalmentAmountTen - para 10x\n\n* STNTransactionInstalmentAmountEleven - para 11x\n\n* STNTransactionInstalmentAmountTwelve - para 12x" } [/block] [block:callout] { "type": "info", "title": "instalmentType(***)", "body": "Um dos seguintes enums devem ser usados:\n\n* STNInstalmentTypeNone - nenhum parcelamento, deve ser usado para transações à vista\n\n* STNInstalmentTypeMerchant - parcelamento com o adquirente (sem juros)\n\n* STNInstalmentTypeIssuer - parcelamento com o emissor (juros do emissor do cartão)" } [/block] Exemplo [block:code] { "codes": [ { "code": "STNTransactionModel *transaction = [[STNTransactionModel alloc] init];\n\ntransaction.amount = [NSNumber numberWithInt:1000]; // valor correspondente a R$ 10,00\ntransaction.type = STNTransactionTypeSimplifiedDebit; // transação no débito\ntransaction.instalmentAmount = STNTransactionInstalmentAmountOne; // número de parcelas: 1\ntransaction.instalmentType = STNInstalmentTypeNone; // tipo de parcelamento: nenhum\ntransaction.shortName = @\"Minha Loja\"; // nome customizado na fatura\ntransaction.initiatorTransactionKey = @\"9999999999999\"; // ITK customizado\n\n[STNTransactionProvider sendTransaction:transaction withBlock:^(BOOL succeeded, NSError *error) {\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] [block:api-header] { "type": "basic", "title": "Mensagens de notificação" } [/block] Durante a execução de uma transação o pinpad pode envar mensagens de notificação. Essas mensagens são exibidas na tela do pinpad e também podem ser acessadas dentro da aplicação usando o NSNotificationCenter. Basta adicionar um observer antes do envio da transação disparando um método que usará a notificação recebida. A notificação vem como uma string. Abaixo um exemplo: [block:code] { "codes": [ { "code": "- (void)sendTransaction\n{\n // adiciona o observer que executará o método 'handleNotification:'\n // o SDK provê o define 'PINPAD_MESSAGE' que possui o nome que a notificação deverá ter\n [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:PINPAD_MESSAGE object:nil];\n\n STNTransactionModel *transaction = [[STNTransactionModel alloc] init];\n\n transaction.amount = [NSNumber numberWithInt:1000];\n transaction.type = STNTransactionTypeSimplifiedCredit;\n transaction.instalmentAmount = STNTransactionInstalmentAmountOne;\n transaction.instalmentType = STNInstalmentTypeNone;\n\n [STNTransactionProvider sendTransaction:transaction withBlock:^(BOOL succeeded, NSError *error) {\n\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n // remove o observer\n [[NSNotificationCenter defaultCenter] removeObserver:self name:PINPAD_MESSAGE object:nil];\n }];\n}\n\n- (void)handleNotification:(NSNotification *) notification\n{\n // converte a notificação para string\n NSString *notificationString = [notification object];\n // imprime a string recebida\n NSLog(@\"Mensagem do pinpad: %@\", notificationString);\n}", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 105, 201, 203, 204, 205, 206, 207, 211, 214, 303, 601
As transações são enviadas usando o método sendTransaction:withBlock do provider STNTransactionProvider. O método sendTransaction:withBlock: deve receber um objeto STNTransactionModel como parâmetro. O objeto STNTransactionModel deve ter as seguintes propriedades definidas: [block:parameters] { "data": { "h-0": "Nome", "h-1": "Tipo", "h-2": "Descrição", "h-3": "Obrigatório", "0-0": "amount", "0-1": "NSNumber", "0-2": "É o valor da transação e deve ser passado no formato de centavos. Por exemplo: caso queira enviar uma transação no valor de R$ 56,45, deve ser passado um NSNumber contendo o valor de 5645. Uma transação no valor de R$ 0,05 deve ser passada como 5.", "0-3": "Sim", "1-0": "type(*)", "1-1": "STNTransactionTypeSimplified", "1-2": "Essa propriedade deve ser definida com o tipo da transação (débito ou crédito). Para isso podem ser usados os enums STNTransactionTypeSimplifiedCredit para crédito ou STNTransactionTypeSimplifiedDebit para débito.", "2-0": "instalmentAmount(**)", "1-3": "Sim", "2-1": "STNTransactionInstalmentAmount", "2-2": "Propriedade que define o número de parcelas da transação.", "2-3": "Sim", "3-0": "instalmentType(***)", "3-1": "STNInstalmentType", "3-2": "Define o tipo de parcelamento que será efetuado", "3-3": "Sim", "4-0": "initiatorTransactionKey", "4-1": "NSString", "5-1": "NSString", "4-2": "Deve conter uma string contendo um valor único para identificação da transação. Caso não seja definido, um identificador único será gerado automaticamente.", "4-3": "Não", "5-0": "shortName", "5-2": "Define um nome customizado que será exibido na fatura do cliente. O máximo de caracteres recomendado para que esse texto seja exibido corretamente em estratos e faturas é 11. Caso não seja definido, será exibido o nome cadastrado para o Stone Code em uso.", "5-3": "Não", "6-0": "merchant", "6-1": "NSMerchantModel", "6-2": "Essa propriedade deve ser definida quando o aplicativo possuir mais de 1 Stone Code ativado. A mesma pode ser usada para definir o lojista (Stone Code) que está passando a transação, caso tenha mais de 1. O valor default será sempre o primeiro Stone Code que foi ativado no aplicativo.", "6-3": "Não" }, "cols": 4, "rows": 7 } [/block] [block:callout] { "type": "info", "title": "type(*)", "body": "Para isso podem ser usados os enums:\n\n * STNTransactionTypeSimplifiedCredit para crédito\n\n * STNTransactionTypeSimplifiedDebit para débito." } [/block] [block:callout] { "type": "info", "title": "instalmentAmount (**)", "body": "Um dos seguintes enums devem ser utilizados :\n\n* STNTransactionInstalmentAmountOne - para 1x (à vista)\n\n* STNTransactionInstalmentAmountTwo - para 2x\n\n* STNTransactionInstalmentAmountThree - para 3x\n\n* STNTransactionInstalmentAmountFour - para 4x\n\n* STNTransactionInstalmentAmountFive - para 5x\n\n* STNTransactionInstalmentAmountSix - para 6x\n\n* STNTransactionInstalmentAmountSeven - para 7x\n\n* STNTransactionInstalmentAmountEight - para 8x\n\n* STNTransactionInstalmentAmountNine - para 9x\n\n* STNTransactionInstalmentAmountTen - para 10x\n\n* STNTransactionInstalmentAmountEleven - para 11x\n\n* STNTransactionInstalmentAmountTwelve - para 12x" } [/block] [block:callout] { "type": "info", "title": "instalmentType(***)", "body": "Um dos seguintes enums devem ser usados:\n\n* STNInstalmentTypeNone - nenhum parcelamento, deve ser usado para transações à vista\n\n* STNInstalmentTypeMerchant - parcelamento com o adquirente (sem juros)\n\n* STNInstalmentTypeIssuer - parcelamento com o emissor (juros do emissor do cartão)" } [/block] Exemplo [block:code] { "codes": [ { "code": "STNTransactionModel *transaction = [[STNTransactionModel alloc] init];\n\ntransaction.amount = [NSNumber numberWithInt:1000]; // valor correspondente a R$ 10,00\ntransaction.type = STNTransactionTypeSimplifiedDebit; // transação no débito\ntransaction.instalmentAmount = STNTransactionInstalmentAmountOne; // número de parcelas: 1\ntransaction.instalmentType = STNInstalmentTypeNone; // tipo de parcelamento: nenhum\ntransaction.shortName = @\"Minha Loja\"; // nome customizado na fatura\ntransaction.initiatorTransactionKey = @\"9999999999999\"; // ITK customizado\n\n[STNTransactionProvider sendTransaction:transaction withBlock:^(BOOL succeeded, NSError *error) {\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] [block:api-header] { "type": "basic", "title": "Mensagens de notificação" } [/block] Durante a execução de uma transação o pinpad pode envar mensagens de notificação. Essas mensagens são exibidas na tela do pinpad e também podem ser acessadas dentro da aplicação usando o NSNotificationCenter. Basta adicionar um observer antes do envio da transação disparando um método que usará a notificação recebida. A notificação vem como uma string. Abaixo um exemplo: [block:code] { "codes": [ { "code": "- (void)sendTransaction\n{\n // adiciona o observer que executará o método 'handleNotification:'\n // o SDK provê o define 'PINPAD_MESSAGE' que possui o nome que a notificação deverá ter\n [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:PINPAD_MESSAGE object:nil];\n\n STNTransactionModel *transaction = [[STNTransactionModel alloc] init];\n\n transaction.amount = [NSNumber numberWithInt:1000];\n transaction.type = STNTransactionTypeSimplifiedCredit;\n transaction.instalmentAmount = STNTransactionInstalmentAmountOne;\n transaction.instalmentType = STNInstalmentTypeNone;\n\n [STNTransactionProvider sendTransaction:transaction withBlock:^(BOOL succeeded, NSError *error) {\n\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n // remove o observer\n [[NSNotificationCenter defaultCenter] removeObserver:self name:PINPAD_MESSAGE object:nil];\n }];\n}\n\n- (void)handleNotification:(NSNotification *) notification\n{\n // converte a notificação para string\n NSString *notificationString = [notification object];\n // imprime a string recebida\n NSLog(@\"Mensagem do pinpad: %@\", notificationString);\n}", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 105, 201, 203, 204, 205, 206, 207, 211, 214, 303, 601
{"_id":"5845bfffe055290f00c029f8","excerpt":"","hidden":false,"isReference":false,"order":999,"title":"Listagem de Transações","api":{"auth":"required","params":[],"url":"","results":{"codes":[{"language":"json","code":"{}","name":"","status":200},{"code":"{}","name":"","status":400,"language":"json"}]},"settings":""},"link_url":"","next":{"pages":[],"description":""},"sync_unique":"","updates":[],"version":"5845b77639950c1b002afe4c","__v":0,"category":"5845b77739950c1b002afe4d","project":"5845b77639950c1b002afe49","githubsync":"","link_external":false,"slug":"listagem-de-transações","type":"basic","user":"57ea79f61780cd170064f273","body":"O provider STNTransactionListProvider possui os métodos, listTransactions: e listTransactionsByPan:.\n\nO método listTransactions: retorna um NSArray com as transações (STNTransactionModel) passadas no aplicativo. A ultima transação passada será sempre a primeira no array.\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"// Array de transações\\nNSArray *transactionsList = [STNTransactionListProvider listTransactions];\\n\\nfor (STNTransactionModel *transaction in transactionsList)\\n{\\n    NSLog(@\\\"Valor da transação em centavos: %@\\\", transaction.amount);\\n    NSLog(@\\\"Status da transação: %@\\\", transaction.statusString);\\n    NSLog(@\\\"Tipo da transação: %@\\\", transaction.typeString);\\n}\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\nPara obter as transações filtrando por um cartão especifico, o método listTransactionsByPan: deve ser usado. Esse método solicitará a inserção de um cartão com chip. E retornará um array de transações dentro de um bloco.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"STNTransactionListProvider *transactionListProvider = [[STNTransactionListProvider alloc] init];\\n\\n// Array de transações\\nNSArray *transactions = [STNTransactionListProvider listTransactionsByPan:^(BOOL succeeded, NSArray *transactionsList, NSError *error)\\n{\\n    if (succeeded) // verifica se a requisição ocorreu com sucesso\\n    {\\n                for (STNTransactionModel *transaction in transactionsList)\\n                    {\\n                            NSLog(@\\\"Valor da transação em centavos: %@\\\", transaction.amount);\\n                            NSLog(@\\\"Status da transação: %@\\\", transaction.statusString);\\n                            NSLog(@\\\"Tipo da transação: %@\\\", transaction.typeString);\\n                    }\\n    } else\\n    {\\n        // trata o erro\\n        NSLog(@\\\"%@\\\", error.description);\\n    }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis códigos de erro**\n\n101, 304","createdAt":"2016-12-05T19:29:03.283Z","childrenPages":[]}

Listagem de Transações


O provider STNTransactionListProvider possui os métodos, listTransactions: e listTransactionsByPan:. O método listTransactions: retorna um NSArray com as transações (STNTransactionModel) passadas no aplicativo. A ultima transação passada será sempre a primeira no array. [block:code] { "codes": [ { "code": "// Array de transações\nNSArray *transactionsList = [STNTransactionListProvider listTransactions];\n\nfor (STNTransactionModel *transaction in transactionsList)\n{\n NSLog(@\"Valor da transação em centavos: %@\", transaction.amount);\n NSLog(@\"Status da transação: %@\", transaction.statusString);\n NSLog(@\"Tipo da transação: %@\", transaction.typeString);\n}", "language": "objectivec" } ] } [/block] Para obter as transações filtrando por um cartão especifico, o método listTransactionsByPan: deve ser usado. Esse método solicitará a inserção de um cartão com chip. E retornará um array de transações dentro de um bloco. [block:code] { "codes": [ { "code": "STNTransactionListProvider *transactionListProvider = [[STNTransactionListProvider alloc] init];\n\n// Array de transações\nNSArray *transactions = [STNTransactionListProvider listTransactionsByPan:^(BOOL succeeded, NSArray *transactionsList, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n for (STNTransactionModel *transaction in transactionsList)\n {\n NSLog(@\"Valor da transação em centavos: %@\", transaction.amount);\n NSLog(@\"Status da transação: %@\", transaction.statusString);\n NSLog(@\"Tipo da transação: %@\", transaction.typeString);\n }\n } else\n {\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 304
O provider STNTransactionListProvider possui os métodos, listTransactions: e listTransactionsByPan:. O método listTransactions: retorna um NSArray com as transações (STNTransactionModel) passadas no aplicativo. A ultima transação passada será sempre a primeira no array. [block:code] { "codes": [ { "code": "// Array de transações\nNSArray *transactionsList = [STNTransactionListProvider listTransactions];\n\nfor (STNTransactionModel *transaction in transactionsList)\n{\n NSLog(@\"Valor da transação em centavos: %@\", transaction.amount);\n NSLog(@\"Status da transação: %@\", transaction.statusString);\n NSLog(@\"Tipo da transação: %@\", transaction.typeString);\n}", "language": "objectivec" } ] } [/block] Para obter as transações filtrando por um cartão especifico, o método listTransactionsByPan: deve ser usado. Esse método solicitará a inserção de um cartão com chip. E retornará um array de transações dentro de um bloco. [block:code] { "codes": [ { "code": "STNTransactionListProvider *transactionListProvider = [[STNTransactionListProvider alloc] init];\n\n// Array de transações\nNSArray *transactions = [STNTransactionListProvider listTransactionsByPan:^(BOOL succeeded, NSArray *transactionsList, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n for (STNTransactionModel *transaction in transactionsList)\n {\n NSLog(@\"Valor da transação em centavos: %@\", transaction.amount);\n NSLog(@\"Status da transação: %@\", transaction.statusString);\n NSLog(@\"Tipo da transação: %@\", transaction.typeString);\n }\n } else\n {\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 304
{"_id":"5845c075e055290f00c029f9","body":"O provider STNMerchantListProvider possui o método listMerchants: que retorna um NSArray contendo os lojistas (STNMerchantModel) ativados no aplicativo.\n\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"// Array de transações\\nNSArray *merchantsList = [STNMerchantListProvider listMerchants];\\n\\nfor (STNMerchantModel *merchant in merchantsList)\\n{\\n    NSLog(@\\\"Nome do lojista: %@\\\", merchantsList.merchantName);\\n    NSLog(@\\\"CPF ou CNPJ do lojista: %@\\\", merchantsList.documentNumber);\\n    NSLog(@\\\"SAK: %@\\\", merchantsList.saleAffiliationKey);\\n}\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis códigos de erro**\n\n101, 304","githubsync":"","hidden":false,"link_external":false,"order":999,"project":"5845b77639950c1b002afe49","slug":"listagem-de-lojistas","updates":[],"excerpt":"","link_url":"","next":{"pages":[],"description":""},"title":"Listagem de Lojistas","type":"basic","createdAt":"2016-12-05T19:31:01.022Z","user":"57ea79f61780cd170064f273","version":"5845b77639950c1b002afe4c","isReference":false,"api":{"settings":"","auth":"required","params":[],"url":"","results":{"codes":[{"name":"","status":200,"language":"json","code":"{}"},{"language":"json","code":"{}","name":"","status":400}]}},"category":"5845b77739950c1b002afe4d","sync_unique":"","__v":0,"childrenPages":[]}

Listagem de Lojistas


O provider STNMerchantListProvider possui o método listMerchants: que retorna um NSArray contendo os lojistas (STNMerchantModel) ativados no aplicativo. [block:code] { "codes": [ { "code": "// Array de transações\nNSArray *merchantsList = [STNMerchantListProvider listMerchants];\n\nfor (STNMerchantModel *merchant in merchantsList)\n{\n NSLog(@\"Nome do lojista: %@\", merchantsList.merchantName);\n NSLog(@\"CPF ou CNPJ do lojista: %@\", merchantsList.documentNumber);\n NSLog(@\"SAK: %@\", merchantsList.saleAffiliationKey);\n}", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 304
O provider STNMerchantListProvider possui o método listMerchants: que retorna um NSArray contendo os lojistas (STNMerchantModel) ativados no aplicativo. [block:code] { "codes": [ { "code": "// Array de transações\nNSArray *merchantsList = [STNMerchantListProvider listMerchants];\n\nfor (STNMerchantModel *merchant in merchantsList)\n{\n NSLog(@\"Nome do lojista: %@\", merchantsList.merchantName);\n NSLog(@\"CPF ou CNPJ do lojista: %@\", merchantsList.documentNumber);\n NSLog(@\"SAK: %@\", merchantsList.saleAffiliationKey);\n}", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 304
{"_id":"5845c0839f6fbb1b0043086a","__v":0,"createdAt":"2016-12-05T19:31:15.075Z","hidden":false,"link_external":false,"project":"5845b77639950c1b002afe49","sync_unique":"","version":"5845b77639950c1b002afe4c","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"excerpt":"","link_url":"","title":"Cancelamento de Transações","body":"O responsavel pelo cancelamento das transações é método cancelTransaction do provider STNCancellationProvider, que recebe, como parâmetro, o objeto de transação STNTransactionModel.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"// preenche array com lista de transações\\nNSArray *transactionsList = [STNTransactionListProvider listTransactions];\\n\\n// instacia o objeto de transação com a última transação realizada\\nSTNTransactionModel *transaction = transactionsList[0];\\n\\n// executa o cancelamento\\n[STNCancellationProvider cancelTransaction:transaction withBlock:^(BOOL succeeded, NSError *error)\\n{\\n        if (succeeded) // verifica se a requisição ocorreu com sucesso\\n        {\\n                // em caso de sucesso,\\n                // executa alguma coisa\\n        } else\\n        {\\n                // em caso de erro,\\n                // trata o erro\\n                NSLog(@\\\"%@\\\", error.description);\\n        }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis códigos de erro**\n\n101, 210, 601","category":"5845b77739950c1b002afe4d","githubsync":"","isReference":false,"next":{"pages":[],"description":""},"order":999,"slug":"cancelamento-de-transações","type":"basic","updates":[],"user":"57ea79f61780cd170064f273","childrenPages":[]}

Cancelamento de Transações


O responsavel pelo cancelamento das transações é método cancelTransaction do provider STNCancellationProvider, que recebe, como parâmetro, o objeto de transação STNTransactionModel. [block:code] { "codes": [ { "code": "// preenche array com lista de transações\nNSArray *transactionsList = [STNTransactionListProvider listTransactions];\n\n// instacia o objeto de transação com a última transação realizada\nSTNTransactionModel *transaction = transactionsList[0];\n\n// executa o cancelamento\n[STNCancellationProvider cancelTransaction:transaction withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 210, 601
O responsavel pelo cancelamento das transações é método cancelTransaction do provider STNCancellationProvider, que recebe, como parâmetro, o objeto de transação STNTransactionModel. [block:code] { "codes": [ { "code": "// preenche array com lista de transações\nNSArray *transactionsList = [STNTransactionListProvider listTransactions];\n\n// instacia o objeto de transação com a última transação realizada\nSTNTransactionModel *transaction = transactionsList[0];\n\n// executa o cancelamento\n[STNCancellationProvider cancelTransaction:transaction withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 210, 601
{"_id":"5845c0fd9f6fbb1b0043086d","type":"basic","updates":[],"__v":0,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"category":"5845b77739950c1b002afe4d","createdAt":"2016-12-05T19:33:17.245Z","githubsync":"","link_external":false,"version":"5845b77639950c1b002afe4c","body":"Para enviar comprovantes de transações por email basta usar o método sendReceiptViaEmail: do provider STNMailProvider.\n\nO método sendReceiptViaEmail: recebe os parâmetros:\n\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Parâmetro\",\n    \"h-1\": \"Tipo\",\n    \"h-2\": \"Descrição\",\n    \"0-0\": \"mailTemplate(*)\",\n    \"0-1\": \"STNMailTemplate\",\n    \"1-0\": \"transaction\",\n    \"1-1\": \"STNTransactionModel\",\n    \"2-0\": \"destination\",\n    \"2-1\": \"NSString\",\n    \"3-0\": \"displayCompanyInformation(**)\",\n    \"3-1\": \"BOOL\",\n    \"0-2\": \"O primeiro parâmetro que deve ser informado é um enum que representa o template de email,\",\n    \"1-2\": \"O parâmetro transactionInfo deve receber um objeto do provider STNTransactionModel que terá as informações da transação.\",\n    \"2-2\": \"Destination deve conter uma string com o email do destinatario.\",\n    \"3-2\": \"Esse parâmetro recebe um booleano que dirá se os dados do lojista (como endereço e CPF/CNPJ) serão exibidos no comprovante ou não.\"\n  },\n  \"cols\": 3,\n  \"rows\": 4\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"mailTemplate(*)\",\n  \"body\": \"Esse parâmetro pode receber os seguintes enums:\\n\\n* STNMailTemplateTransaction para comprovantes de transação\\n\\n* STNMailTemplateVoidTransaction para comprovantes de cancelamento.\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"displayCompanyInformation(**)\",\n  \"body\": \"Alguns lojistas são pessoas físicas e querem que suas informações não sejam exibidas.\"\n}\n[/block]\nExemplo\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"NSArray *transactions = [STNTransactionListProvider listTransactions];\\n\\n// destinatario\\nNSString *destination = @\\\"fulano@destino.com.br\\\";\\n\\n// envia email com comprovante da última transação realizada\\n[STNMailProvider sendReceiptViaEmail:STNMailTemplateTransaction transaction:transactions[0] toDestination:destination displayCompanyInformation:YES withBlock:^(BOOL succeeded, NSError *error)\\n{\\n        if (succeeded) // verifica se a requisição ocorreu com sucesso\\n        {\\n                // em caso de sucesso,\\n                // executa alguma coisa\\n        } else\\n        {\\n                // em caso de erro,\\n                // trata o erro\\n                NSLog(@\\\"%@\\\", error.description);\\n        }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis códigos de erro**\n\n103, 601","excerpt":"","next":{"pages":[],"description":""},"title":"Envio de Comprovante por email","user":"57ea79f61780cd170064f273","hidden":false,"isReference":false,"link_url":"","project":"5845b77639950c1b002afe49","order":999,"slug":"envio-de-comprovante-por-email","sync_unique":"","childrenPages":[]}

Envio de Comprovante por email


Para enviar comprovantes de transações por email basta usar o método sendReceiptViaEmail: do provider STNMailProvider. O método sendReceiptViaEmail: recebe os parâmetros: [block:parameters] { "data": { "h-0": "Parâmetro", "h-1": "Tipo", "h-2": "Descrição", "0-0": "mailTemplate(*)", "0-1": "STNMailTemplate", "1-0": "transaction", "1-1": "STNTransactionModel", "2-0": "destination", "2-1": "NSString", "3-0": "displayCompanyInformation(**)", "3-1": "BOOL", "0-2": "O primeiro parâmetro que deve ser informado é um enum que representa o template de email,", "1-2": "O parâmetro transactionInfo deve receber um objeto do provider STNTransactionModel que terá as informações da transação.", "2-2": "Destination deve conter uma string com o email do destinatario.", "3-2": "Esse parâmetro recebe um booleano que dirá se os dados do lojista (como endereço e CPF/CNPJ) serão exibidos no comprovante ou não." }, "cols": 3, "rows": 4 } [/block] [block:callout] { "type": "info", "title": "mailTemplate(*)", "body": "Esse parâmetro pode receber os seguintes enums:\n\n* STNMailTemplateTransaction para comprovantes de transação\n\n* STNMailTemplateVoidTransaction para comprovantes de cancelamento." } [/block] [block:callout] { "type": "info", "title": "displayCompanyInformation(**)", "body": "Alguns lojistas são pessoas físicas e querem que suas informações não sejam exibidas." } [/block] Exemplo [block:code] { "codes": [ { "code": "NSArray *transactions = [STNTransactionListProvider listTransactions];\n\n// destinatario\nNSString *destination = @\"fulano@destino.com.br\";\n\n// envia email com comprovante da última transação realizada\n[STNMailProvider sendReceiptViaEmail:STNMailTemplateTransaction transaction:transactions[0] toDestination:destination displayCompanyInformation:YES withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 103, 601
Para enviar comprovantes de transações por email basta usar o método sendReceiptViaEmail: do provider STNMailProvider. O método sendReceiptViaEmail: recebe os parâmetros: [block:parameters] { "data": { "h-0": "Parâmetro", "h-1": "Tipo", "h-2": "Descrição", "0-0": "mailTemplate(*)", "0-1": "STNMailTemplate", "1-0": "transaction", "1-1": "STNTransactionModel", "2-0": "destination", "2-1": "NSString", "3-0": "displayCompanyInformation(**)", "3-1": "BOOL", "0-2": "O primeiro parâmetro que deve ser informado é um enum que representa o template de email,", "1-2": "O parâmetro transactionInfo deve receber um objeto do provider STNTransactionModel que terá as informações da transação.", "2-2": "Destination deve conter uma string com o email do destinatario.", "3-2": "Esse parâmetro recebe um booleano que dirá se os dados do lojista (como endereço e CPF/CNPJ) serão exibidos no comprovante ou não." }, "cols": 3, "rows": 4 } [/block] [block:callout] { "type": "info", "title": "mailTemplate(*)", "body": "Esse parâmetro pode receber os seguintes enums:\n\n* STNMailTemplateTransaction para comprovantes de transação\n\n* STNMailTemplateVoidTransaction para comprovantes de cancelamento." } [/block] [block:callout] { "type": "info", "title": "displayCompanyInformation(**)", "body": "Alguns lojistas são pessoas físicas e querem que suas informações não sejam exibidas." } [/block] Exemplo [block:code] { "codes": [ { "code": "NSArray *transactions = [STNTransactionListProvider listTransactions];\n\n// destinatario\nNSString *destination = @\"fulano@destino.com.br\";\n\n// envia email com comprovante da última transação realizada\n[STNMailProvider sendReceiptViaEmail:STNMailTemplateTransaction transaction:transactions[0] toDestination:destination displayCompanyInformation:YES withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 103, 601
{"_id":"5845c24563c11b250037966e","category":"5845b77739950c1b002afe4d","link_url":"","title":"Validações","version":"5845b77639950c1b002afe4c","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"createdAt":"2016-12-05T19:38:45.909Z","isReference":false,"order":999,"type":"basic","excerpt":"","link_external":false,"slug":"validações","updates":[],"user":"57ea79f61780cd170064f273","next":{"pages":[],"description":""},"project":"5845b77639950c1b002afe49","sync_unique":"","__v":0,"body":"O provider STNValidationProvider possui 4 métodos de validação:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Método\",\n    \"h-1\": \"Descrição\",\n    \"0-0\": \"validateActivation\",\n    \"1-0\": \"validatePinpadConnection\",\n    \"2-0\": \"validateTablesDownloaded(*)\",\n    \"3-0\": \"validateConnectionToNetWork\",\n    \"0-1\": \"Verifica se o Stone Code já foi ativado e retorna YES caso positivo.\",\n    \"1-1\": \"Valida se o pinpad está pareado com o dispositivo iOS e retorna YES caso positivo.\",\n    \"2-1\": \"Checa se as tabelas AID e CAPK já foram baixadas para o dispositivo iOS e retorna YES caso positivo.\",\n    \"3-1\": \"Verifica se a conexão com a internet está funcionando e retorna YES caso positivo.\"\n  },\n  \"cols\": 2,\n  \"rows\": 4\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Lembrando que para a comunicação ocorrer ainda é necessario estabelecer uma sessão.\",\n  \"title\": \"validateTablesDownloaded(*)\"\n}\n[/block]\nExemplo\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"if ([STNValidationProvider validateActivation] == YES)\\n{\\n    NSLog(@\\\"Stone Code está ativado!\\\");\\n}\\n\\nif ([STNValidationProvider validatePinpadConnection] == YES)\\n{\\n    NSLog(@\\\"O pinpad está pareado com o dispositivo iOS!\\\");\\n}\\n\\nif ([STNValidationProvider validateTablesDownloaded] == YES)\\n{\\n    NSLog(@\\\"As tabelas já foram baixadas para o dispositivo iOS!\\\");\\n}\\n\\nif ([STNValidationProvider validateConnectionToNetWork] == YES)\\n{\\n    NSLog(@\\\"A conexão com a internet está ativa!\\\");\\n}\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"É importante que essas validações sejam executadas e tratadas antes de realizar as operações.\"\n}\n[/block]","githubsync":"","hidden":false,"childrenPages":[]}

Validações


O provider STNValidationProvider possui 4 métodos de validação: [block:parameters] { "data": { "h-0": "Método", "h-1": "Descrição", "0-0": "validateActivation", "1-0": "validatePinpadConnection", "2-0": "validateTablesDownloaded(*)", "3-0": "validateConnectionToNetWork", "0-1": "Verifica se o Stone Code já foi ativado e retorna YES caso positivo.", "1-1": "Valida se o pinpad está pareado com o dispositivo iOS e retorna YES caso positivo.", "2-1": "Checa se as tabelas AID e CAPK já foram baixadas para o dispositivo iOS e retorna YES caso positivo.", "3-1": "Verifica se a conexão com a internet está funcionando e retorna YES caso positivo." }, "cols": 2, "rows": 4 } [/block] [block:callout] { "type": "info", "body": "Lembrando que para a comunicação ocorrer ainda é necessario estabelecer uma sessão.", "title": "validateTablesDownloaded(*)" } [/block] Exemplo [block:code] { "codes": [ { "code": "if ([STNValidationProvider validateActivation] == YES)\n{\n NSLog(@\"Stone Code está ativado!\");\n}\n\nif ([STNValidationProvider validatePinpadConnection] == YES)\n{\n NSLog(@\"O pinpad está pareado com o dispositivo iOS!\");\n}\n\nif ([STNValidationProvider validateTablesDownloaded] == YES)\n{\n NSLog(@\"As tabelas já foram baixadas para o dispositivo iOS!\");\n}\n\nif ([STNValidationProvider validateConnectionToNetWork] == YES)\n{\n NSLog(@\"A conexão com a internet está ativa!\");\n}", "language": "objectivec" } ] } [/block] [block:callout] { "type": "info", "body": "É importante que essas validações sejam executadas e tratadas antes de realizar as operações." } [/block]
O provider STNValidationProvider possui 4 métodos de validação: [block:parameters] { "data": { "h-0": "Método", "h-1": "Descrição", "0-0": "validateActivation", "1-0": "validatePinpadConnection", "2-0": "validateTablesDownloaded(*)", "3-0": "validateConnectionToNetWork", "0-1": "Verifica se o Stone Code já foi ativado e retorna YES caso positivo.", "1-1": "Valida se o pinpad está pareado com o dispositivo iOS e retorna YES caso positivo.", "2-1": "Checa se as tabelas AID e CAPK já foram baixadas para o dispositivo iOS e retorna YES caso positivo.", "3-1": "Verifica se a conexão com a internet está funcionando e retorna YES caso positivo." }, "cols": 2, "rows": 4 } [/block] [block:callout] { "type": "info", "body": "Lembrando que para a comunicação ocorrer ainda é necessario estabelecer uma sessão.", "title": "validateTablesDownloaded(*)" } [/block] Exemplo [block:code] { "codes": [ { "code": "if ([STNValidationProvider validateActivation] == YES)\n{\n NSLog(@\"Stone Code está ativado!\");\n}\n\nif ([STNValidationProvider validatePinpadConnection] == YES)\n{\n NSLog(@\"O pinpad está pareado com o dispositivo iOS!\");\n}\n\nif ([STNValidationProvider validateTablesDownloaded] == YES)\n{\n NSLog(@\"As tabelas já foram baixadas para o dispositivo iOS!\");\n}\n\nif ([STNValidationProvider validateConnectionToNetWork] == YES)\n{\n NSLog(@\"A conexão com a internet está ativa!\");\n}", "language": "objectivec" } ] } [/block] [block:callout] { "type": "info", "body": "É importante que essas validações sejam executadas e tratadas antes de realizar as operações." } [/block]
{"_id":"5845c31f9faf12230009b065","__v":0,"next":{"pages":[],"description":""},"sync_unique":"","version":"5845b77639950c1b002afe4c","user":"57ea79f61780cd170064f273","api":{"results":{"codes":[{"code":"{}","name":"","status":200,"language":"json"},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"link_url":"","project":"5845b77639950c1b002afe49","type":"basic","updates":[],"link_external":false,"order":999,"body":"Para capturar o PAN (4 últimos dígitos do cartão) deve ser usado o método getCardPan: do provider SNTCardProvider.\n\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"NSString *pan = [STNCardProvider getCardPan:^(BOOL succeeded, NSString *pan, NSError *error)\\n{\\n        if (succeeded) // verifica se a requisição ocorreu com sucesso\\n        {\\n                NSLog(@\\\"**** **** **** %@\\\", pan);\\n        } else\\n        {\\n                // em caso de erro,\\n                // trata o erro\\n                NSLog(@\\\"%@\\\", error.description);\\n        }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Possíveis códigos de erro\",\n  \"body\": \"101, 304\"\n}\n[/block]","category":"5845b77739950c1b002afe4d","excerpt":"","githubsync":"","hidden":false,"slug":"captura-de-pan","title":"Captura de PAN","createdAt":"2016-12-05T19:42:23.994Z","childrenPages":[]}

Captura de PAN


Para capturar o PAN (4 últimos dígitos do cartão) deve ser usado o método getCardPan: do provider SNTCardProvider. [block:code] { "codes": [ { "code": "NSString *pan = [STNCardProvider getCardPan:^(BOOL succeeded, NSString *pan, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n NSLog(@\"**** **** **** %@\", pan);\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] [block:callout] { "type": "warning", "title": "Possíveis códigos de erro", "body": "101, 304" } [/block]
Para capturar o PAN (4 últimos dígitos do cartão) deve ser usado o método getCardPan: do provider SNTCardProvider. [block:code] { "codes": [ { "code": "NSString *pan = [STNCardProvider getCardPan:^(BOOL succeeded, NSString *pan, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n NSLog(@\"**** **** **** %@\", pan);\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] [block:callout] { "type": "warning", "title": "Possíveis códigos de erro", "body": "101, 304" } [/block]
{"_id":"5845c3b3e055290f00c029fd","order":999,"type":"basic","user":"57ea79f61780cd170064f273","updates":[],"githubsync":"","sync_unique":"","hidden":false,"version":"5845b77639950c1b002afe4c","createdAt":"2016-12-05T19:44:51.956Z","link_external":false,"api":{"results":{"codes":[{"code":"{}","name":"","status":200,"language":"json"},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"body":"Para exibir uma mensagem no display do pinpad pode ser usado o método displayMessage:withBlock: do provider STNDisplayProvider que recebe uma mensagem no formato de string. A string enviada deve conter no máximo 16 caracteres.\n\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[STNDisplayProvider displayMessage:@\\\"MINHA MENSAGEM\\\" withBlock:^(BOOL succeeded, NSError *error)\\n{\\n        if (succeeded) // verifica se a requisição ocorreu com sucesso\\n        {\\n                // em caso de sucesso,\\n                // executa alguma coisa\\n        } else\\n        {\\n                // em caso de erro,\\n                // trata o erro\\n                NSLog(@\\\"%@\\\", error.description);\\n        }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"101, 105, 304\",\n  \"title\": \"Possíveis códigos de erro\"\n}\n[/block]","excerpt":"","project":"5845b77639950c1b002afe49","category":"5845b77739950c1b002afe4d","next":{"pages":[],"description":""},"link_url":"","isReference":false,"slug":"exibição-no-display-do-pinpad","title":"Exibição no display do pinpad","__v":0,"childrenPages":[]}

Exibição no display do pinpad


Para exibir uma mensagem no display do pinpad pode ser usado o método displayMessage:withBlock: do provider STNDisplayProvider que recebe uma mensagem no formato de string. A string enviada deve conter no máximo 16 caracteres. [block:code] { "codes": [ { "code": "[STNDisplayProvider displayMessage:@\"MINHA MENSAGEM\" withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] [block:callout] { "type": "warning", "body": "101, 105, 304", "title": "Possíveis códigos de erro" } [/block]
Para exibir uma mensagem no display do pinpad pode ser usado o método displayMessage:withBlock: do provider STNDisplayProvider que recebe uma mensagem no formato de string. A string enviada deve conter no máximo 16 caracteres. [block:code] { "codes": [ { "code": "[STNDisplayProvider displayMessage:@\"MINHA MENSAGEM\" withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] [block:callout] { "type": "warning", "body": "101, 105, 304", "title": "Possíveis códigos de erro" } [/block]
{"_id":"5845c5699faf12230009b06c","excerpt":"","githubsync":"","order":999,"__v":0,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"hidden":false,"isReference":false,"link_url":"","next":{"pages":[],"description":""},"slug":"models","body":"Alguns providers retornam models que podem ser usados pelo usuario do SDK.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Transação\"\n}\n[/block]\nO model STNTransactionModel disponibiliza, em suas propriedades, informações de uma transação.\n\n**Lista de propriedades**\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Nome\",\n    \"h-1\": \"Tipo\",\n    \"h-2\": \"Descrição\",\n    \"0-0\": \"amount\",\n    \"0-1\": \"NSNumber\",\n    \"0-2\": \"Valor da transação no formato de centavos (ex: 10,00 vai ser 1000. Basta multiplicar por 0.01 para obter o valor real.)\",\n    \"1-0\": \"instalmentAmount\",\n    \"1-1\": \"STNTransactionInstalmentAmount\",\n    \"1-2\": \"Número de parcelas da transação\",\n    \"2-0\": \"instalmentType\",\n    \"3-0\": \"aid\",\n    \"4-0\": \"arqc\",\n    \"5-0\": \"type\",\n    \"6-0\": \"typeString\",\n    \"7-0\": \"status\",\n    \"8-0\": \"statusString\",\n    \"9-0\": \"date\",\n    \"10-0\": \"dateString\",\n    \"11-0\": \"receiptTransactionKey\",\n    \"12-0\": \"reference\",\n    \"13-0\": \"pan\",\n    \"14-0\": \"cardBrand\",\n    \"15-0\": \"cardHolderName\",\n    \"16-0\": \"authorizationCode\",\n    \"17-0\": \"initiatorTransactionKey\",\n    \"18-0\": \"shortName\",\n    \"19-0\": \"merchant\",\n    \"20-0\": \"pinpad\",\n    \"2-1\": \"STNInstalmentType\",\n    \"3-1\": \"NSString\",\n    \"4-1\": \"NSString\",\n    \"5-1\": \"STNTransactionTypeSimplified\",\n    \"6-1\": \"NSString\",\n    \"7-1\": \"STNTransactionStatus\",\n    \"8-1\": \"NSString\",\n    \"9-1\": \"NSDate\",\n    \"10-1\": \"NSString\",\n    \"11-1\": \"NSString\",\n    \"12-1\": \"NSString\",\n    \"13-1\": \"NSString\",\n    \"14-1\": \"NSString\",\n    \"15-1\": \"NSString\",\n    \"16-1\": \"NSString\",\n    \"17-1\": \"NSString\",\n    \"18-1\": \"NSString\",\n    \"19-1\": \"STNMerchantModel\",\n    \"20-1\": \"STNPinpadModel\",\n    \"2-2\": \"Tipo de parcelamento da transação\",\n    \"3-2\": \"Código AID da transação\",\n    \"4-2\": \"Código ARQC da transação\",\n    \"5-2\": \"Débito ou crédito\",\n    \"6-2\": \"String que representa a propriedade type\",\n    \"7-2\": \"Aprovada, cancelada, negada...\",\n    \"8-2\": \"String que representa a propriedade status\",\n    \"9-2\": \"Data da transação\",\n    \"10-2\": \"string que representa a propriedade date\",\n    \"11-2\": \"ID da transação\",\n    \"12-2\": \"Referencia da transação\",\n    \"13-2\": \"4 últimos número do cartão\",\n    \"14-2\": \"Bandeira do cartão\",\n    \"15-2\": \"Nome do portador do cartão\",\n    \"16-2\": \"Stone ID\",\n    \"17-2\": \"Identificação da transação\",\n    \"18-2\": \"Nome customizado exibido na fatura (se não for definido será nil)\",\n    \"19-2\": \"Lojista que passou a transação\",\n    \"20-2\": \"Pinpad que passou a transação\"\n  },\n  \"cols\": 3,\n  \"rows\": 21\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Lojista\"\n}\n[/block]\nO model STNMerchantModel disponibiliza, em suas propriedades, informações do lojista/usuario do aplicativo.\n\n**Lista de propriedades**\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Nome\",\n    \"h-1\": \"TIpo\",\n    \"h-2\": \"Descrição\",\n    \"0-0\": \"saleAffiliationKey\",\n    \"1-0\": \"documentNumber\",\n    \"2-0\": \"merchantName\",\n    \"3-0\": \"stonecode\",\n    \"4-0\": \"address\",\n    \"5-0\": \"transactions\",\n    \"0-1\": \"NSString\",\n    \"1-1\": \"NSString\",\n    \"2-1\": \"NSString\",\n    \"3-1\": \"NSString\",\n    \"4-1\": \"STNAddressModel\",\n    \"5-1\": \"NSOrderedSet\",\n    \"0-2\": \"Afiliation key\",\n    \"1-2\": \"CPF/CNPJ\",\n    \"2-2\": \"Nome do lojista\",\n    \"3-2\": \"Stone Code\",\n    \"4-2\": \"Endereço do lojista\",\n    \"5-2\": \"Transações do lojista\"\n  },\n  \"cols\": 3,\n  \"rows\": 6\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Pinpad\"\n}\n[/block]\nO model STNPinpadModel disponibiliza, em suas propriedades, informações do pinpad.\n\n**Lista de propriedades**\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Nome\",\n    \"h-1\": \"Tipo\",\n    \"h-2\": \"Descrição\",\n    \"0-0\": \"name\",\n    \"1-0\": \"model\",\n    \"2-0\": \"serialNumber\",\n    \"3-0\": \"transaction\",\n    \"0-1\": \"NSString\",\n    \"1-1\": \"NSString\",\n    \"2-1\": \"NSString\",\n    \"3-1\": \"STNTransactionModel\",\n    \"0-2\": \"Nome\",\n    \"1-2\": \"Modelo\",\n    \"2-2\": \"Número de serie\",\n    \"3-2\": \"Transação passada com o pinpad\"\n  },\n  \"cols\": 3,\n  \"rows\": 4\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Endereço\"\n}\n[/block]\nO model STNAddressModel disponibiliza, em suas propriedades, informações de endereço.\n\n**Lista de propriedades**\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Nome\",\n    \"h-1\": \"Tipo\",\n    \"h-2\": \"Descrição\",\n    \"0-0\": \"city\",\n    \"1-0\": \"district\",\n    \"2-0\": \"neighborhood\",\n    \"3-0\": \"street\",\n    \"4-0\": \"doorNumber\",\n    \"5-0\": \"complement\",\n    \"6-0\": \"zipCode\",\n    \"7-0\": \"merchant\",\n    \"0-1\": \"NSString\",\n    \"1-1\": \"NSString\",\n    \"2-1\": \"NSString\",\n    \"3-1\": \"NSString\",\n    \"4-1\": \"NSString\",\n    \"5-1\": \"NSString\",\n    \"6-1\": \"NSString\",\n    \"7-1\": \"STNMerchantModel\",\n    \"0-2\": \"cidade\",\n    \"1-2\": \"estado\",\n    \"2-2\": \"bairro\",\n    \"3-2\": \"rua\",\n    \"4-2\": \"número\",\n    \"5-2\": \"complemento\",\n    \"6-2\": \"CEP\",\n    \"7-2\": \"lojista que possui esse endereço\"\n  },\n  \"cols\": 3,\n  \"rows\": 8\n}\n[/block]","category":"5845b77739950c1b002afe4d","createdAt":"2016-12-05T19:52:09.641Z","project":"5845b77639950c1b002afe49","title":"Models","user":"57ea79f61780cd170064f273","version":"5845b77639950c1b002afe4c","link_external":false,"sync_unique":"","type":"basic","updates":[],"childrenPages":[]}

Models


Alguns providers retornam models que podem ser usados pelo usuario do SDK. [block:api-header] { "type": "basic", "title": "Transação" } [/block] O model STNTransactionModel disponibiliza, em suas propriedades, informações de uma transação. **Lista de propriedades** [block:parameters] { "data": { "h-0": "Nome", "h-1": "Tipo", "h-2": "Descrição", "0-0": "amount", "0-1": "NSNumber", "0-2": "Valor da transação no formato de centavos (ex: 10,00 vai ser 1000. Basta multiplicar por 0.01 para obter o valor real.)", "1-0": "instalmentAmount", "1-1": "STNTransactionInstalmentAmount", "1-2": "Número de parcelas da transação", "2-0": "instalmentType", "3-0": "aid", "4-0": "arqc", "5-0": "type", "6-0": "typeString", "7-0": "status", "8-0": "statusString", "9-0": "date", "10-0": "dateString", "11-0": "receiptTransactionKey", "12-0": "reference", "13-0": "pan", "14-0": "cardBrand", "15-0": "cardHolderName", "16-0": "authorizationCode", "17-0": "initiatorTransactionKey", "18-0": "shortName", "19-0": "merchant", "20-0": "pinpad", "2-1": "STNInstalmentType", "3-1": "NSString", "4-1": "NSString", "5-1": "STNTransactionTypeSimplified", "6-1": "NSString", "7-1": "STNTransactionStatus", "8-1": "NSString", "9-1": "NSDate", "10-1": "NSString", "11-1": "NSString", "12-1": "NSString", "13-1": "NSString", "14-1": "NSString", "15-1": "NSString", "16-1": "NSString", "17-1": "NSString", "18-1": "NSString", "19-1": "STNMerchantModel", "20-1": "STNPinpadModel", "2-2": "Tipo de parcelamento da transação", "3-2": "Código AID da transação", "4-2": "Código ARQC da transação", "5-2": "Débito ou crédito", "6-2": "String que representa a propriedade type", "7-2": "Aprovada, cancelada, negada...", "8-2": "String que representa a propriedade status", "9-2": "Data da transação", "10-2": "string que representa a propriedade date", "11-2": "ID da transação", "12-2": "Referencia da transação", "13-2": "4 últimos número do cartão", "14-2": "Bandeira do cartão", "15-2": "Nome do portador do cartão", "16-2": "Stone ID", "17-2": "Identificação da transação", "18-2": "Nome customizado exibido na fatura (se não for definido será nil)", "19-2": "Lojista que passou a transação", "20-2": "Pinpad que passou a transação" }, "cols": 3, "rows": 21 } [/block] [block:api-header] { "type": "basic", "title": "Lojista" } [/block] O model STNMerchantModel disponibiliza, em suas propriedades, informações do lojista/usuario do aplicativo. **Lista de propriedades** [block:parameters] { "data": { "h-0": "Nome", "h-1": "TIpo", "h-2": "Descrição", "0-0": "saleAffiliationKey", "1-0": "documentNumber", "2-0": "merchantName", "3-0": "stonecode", "4-0": "address", "5-0": "transactions", "0-1": "NSString", "1-1": "NSString", "2-1": "NSString", "3-1": "NSString", "4-1": "STNAddressModel", "5-1": "NSOrderedSet", "0-2": "Afiliation key", "1-2": "CPF/CNPJ", "2-2": "Nome do lojista", "3-2": "Stone Code", "4-2": "Endereço do lojista", "5-2": "Transações do lojista" }, "cols": 3, "rows": 6 } [/block] [block:api-header] { "type": "basic", "title": "Pinpad" } [/block] O model STNPinpadModel disponibiliza, em suas propriedades, informações do pinpad. **Lista de propriedades** [block:parameters] { "data": { "h-0": "Nome", "h-1": "Tipo", "h-2": "Descrição", "0-0": "name", "1-0": "model", "2-0": "serialNumber", "3-0": "transaction", "0-1": "NSString", "1-1": "NSString", "2-1": "NSString", "3-1": "STNTransactionModel", "0-2": "Nome", "1-2": "Modelo", "2-2": "Número de serie", "3-2": "Transação passada com o pinpad" }, "cols": 3, "rows": 4 } [/block] [block:api-header] { "type": "basic", "title": "Endereço" } [/block] O model STNAddressModel disponibiliza, em suas propriedades, informações de endereço. **Lista de propriedades** [block:parameters] { "data": { "h-0": "Nome", "h-1": "Tipo", "h-2": "Descrição", "0-0": "city", "1-0": "district", "2-0": "neighborhood", "3-0": "street", "4-0": "doorNumber", "5-0": "complement", "6-0": "zipCode", "7-0": "merchant", "0-1": "NSString", "1-1": "NSString", "2-1": "NSString", "3-1": "NSString", "4-1": "NSString", "5-1": "NSString", "6-1": "NSString", "7-1": "STNMerchantModel", "0-2": "cidade", "1-2": "estado", "2-2": "bairro", "3-2": "rua", "4-2": "número", "5-2": "complemento", "6-2": "CEP", "7-2": "lojista que possui esse endereço" }, "cols": 3, "rows": 8 } [/block]
Alguns providers retornam models que podem ser usados pelo usuario do SDK. [block:api-header] { "type": "basic", "title": "Transação" } [/block] O model STNTransactionModel disponibiliza, em suas propriedades, informações de uma transação. **Lista de propriedades** [block:parameters] { "data": { "h-0": "Nome", "h-1": "Tipo", "h-2": "Descrição", "0-0": "amount", "0-1": "NSNumber", "0-2": "Valor da transação no formato de centavos (ex: 10,00 vai ser 1000. Basta multiplicar por 0.01 para obter o valor real.)", "1-0": "instalmentAmount", "1-1": "STNTransactionInstalmentAmount", "1-2": "Número de parcelas da transação", "2-0": "instalmentType", "3-0": "aid", "4-0": "arqc", "5-0": "type", "6-0": "typeString", "7-0": "status", "8-0": "statusString", "9-0": "date", "10-0": "dateString", "11-0": "receiptTransactionKey", "12-0": "reference", "13-0": "pan", "14-0": "cardBrand", "15-0": "cardHolderName", "16-0": "authorizationCode", "17-0": "initiatorTransactionKey", "18-0": "shortName", "19-0": "merchant", "20-0": "pinpad", "2-1": "STNInstalmentType", "3-1": "NSString", "4-1": "NSString", "5-1": "STNTransactionTypeSimplified", "6-1": "NSString", "7-1": "STNTransactionStatus", "8-1": "NSString", "9-1": "NSDate", "10-1": "NSString", "11-1": "NSString", "12-1": "NSString", "13-1": "NSString", "14-1": "NSString", "15-1": "NSString", "16-1": "NSString", "17-1": "NSString", "18-1": "NSString", "19-1": "STNMerchantModel", "20-1": "STNPinpadModel", "2-2": "Tipo de parcelamento da transação", "3-2": "Código AID da transação", "4-2": "Código ARQC da transação", "5-2": "Débito ou crédito", "6-2": "String que representa a propriedade type", "7-2": "Aprovada, cancelada, negada...", "8-2": "String que representa a propriedade status", "9-2": "Data da transação", "10-2": "string que representa a propriedade date", "11-2": "ID da transação", "12-2": "Referencia da transação", "13-2": "4 últimos número do cartão", "14-2": "Bandeira do cartão", "15-2": "Nome do portador do cartão", "16-2": "Stone ID", "17-2": "Identificação da transação", "18-2": "Nome customizado exibido na fatura (se não for definido será nil)", "19-2": "Lojista que passou a transação", "20-2": "Pinpad que passou a transação" }, "cols": 3, "rows": 21 } [/block] [block:api-header] { "type": "basic", "title": "Lojista" } [/block] O model STNMerchantModel disponibiliza, em suas propriedades, informações do lojista/usuario do aplicativo. **Lista de propriedades** [block:parameters] { "data": { "h-0": "Nome", "h-1": "TIpo", "h-2": "Descrição", "0-0": "saleAffiliationKey", "1-0": "documentNumber", "2-0": "merchantName", "3-0": "stonecode", "4-0": "address", "5-0": "transactions", "0-1": "NSString", "1-1": "NSString", "2-1": "NSString", "3-1": "NSString", "4-1": "STNAddressModel", "5-1": "NSOrderedSet", "0-2": "Afiliation key", "1-2": "CPF/CNPJ", "2-2": "Nome do lojista", "3-2": "Stone Code", "4-2": "Endereço do lojista", "5-2": "Transações do lojista" }, "cols": 3, "rows": 6 } [/block] [block:api-header] { "type": "basic", "title": "Pinpad" } [/block] O model STNPinpadModel disponibiliza, em suas propriedades, informações do pinpad. **Lista de propriedades** [block:parameters] { "data": { "h-0": "Nome", "h-1": "Tipo", "h-2": "Descrição", "0-0": "name", "1-0": "model", "2-0": "serialNumber", "3-0": "transaction", "0-1": "NSString", "1-1": "NSString", "2-1": "NSString", "3-1": "STNTransactionModel", "0-2": "Nome", "1-2": "Modelo", "2-2": "Número de serie", "3-2": "Transação passada com o pinpad" }, "cols": 3, "rows": 4 } [/block] [block:api-header] { "type": "basic", "title": "Endereço" } [/block] O model STNAddressModel disponibiliza, em suas propriedades, informações de endereço. **Lista de propriedades** [block:parameters] { "data": { "h-0": "Nome", "h-1": "Tipo", "h-2": "Descrição", "0-0": "city", "1-0": "district", "2-0": "neighborhood", "3-0": "street", "4-0": "doorNumber", "5-0": "complement", "6-0": "zipCode", "7-0": "merchant", "0-1": "NSString", "1-1": "NSString", "2-1": "NSString", "3-1": "NSString", "4-1": "NSString", "5-1": "NSString", "6-1": "NSString", "7-1": "STNMerchantModel", "0-2": "cidade", "1-2": "estado", "2-2": "bairro", "3-2": "rua", "4-2": "número", "5-2": "complemento", "6-2": "CEP", "7-2": "lojista que possui esse endereço" }, "cols": 3, "rows": 8 } [/block]
{"_id":"5845c59f63c11b2500379675","isReference":false,"link_external":false,"link_url":"","order":999,"githubsync":"","hidden":false,"slug":"códigos-de-erro","title":"Códigos de erro","type":"basic","user":"57ea79f61780cd170064f273","api":{"settings":"","auth":"required","params":[],"url":"","results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"code":"{}","name":"","status":400,"language":"json"}]}},"body":"[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Código\",\n    \"h-1\": \"Descrição\",\n    \"0-0\": \"101\",\n    \"1-0\": \"103\",\n    \"2-0\": \"105\",\n    \"3-0\": \"106\",\n    \"4-0\": \"110\",\n    \"5-0\": \"201\",\n    \"6-0\": \"202\",\n    \"7-0\": \"203\",\n    \"8-0\": \"204\",\n    \"9-0\": \"205\",\n    \"10-0\": \"206\",\n    \"11-0\": \"207\",\n    \"12-0\": \"209\",\n    \"13-0\": \"210\",\n    \"14-0\": \"211\",\n    \"15-0\": \"214\",\n    \"16-0\": \"303\",\n    \"17-0\": \"304\",\n    \"18-0\": \"305\",\n    \"19-0\": \"306\",\n    \"20-0\": \"601\",\n    \"0-1\": \"Erro genérico\",\n    \"1-1\": \"Falha no envio de email\",\n    \"2-1\": \"Número de caracteres acima do permitido\",\n    \"3-1\": \"Número de caracteres acima do permitido para a propriedade shortName\",\n    \"4-1\": \"Erro no comando FNC\",\n    \"5-1\": \"Falta ativar o Stone Code\",\n    \"6-1\": \"Stone Code informado já foi ativado\",\n    \"7-1\": \"Valor informado para transação é inválido\",\n    \"8-1\": \"Transação cancelada durante operação\",\n    \"9-1\": \"Transação inválida\",\n    \"10-1\": \"Falha na transação\",\n    \"11-1\": \"Tempo da transação expirado\",\n    \"12-1\": \"Stone Code desconhecido\",\n    \"13-1\": \"Transação já foi cancelada\",\n    \"14-1\": \"Transação negada\",\n    \"15-1\": \"Operação cancelada pelo usuario\",\n    \"16-1\": \"Conexão com o pinpad não encontrada\",\n    \"17-1\": \"Tabelas AID e CAPK não encontradas\",\n    \"18-1\": \"Erro ao carregar tabelas para o pinpad\",\n    \"19-1\": \"Erro no request\",\n    \"20-1\": \"Erro na conexão com a internet\"\n  },\n  \"cols\": 2,\n  \"rows\": 21\n}\n[/block]","category":"5845b77739950c1b002afe4d","createdAt":"2016-12-05T19:53:03.695Z","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","__v":0,"excerpt":"","next":{"pages":[],"description":""},"sync_unique":"","updates":[],"childrenPages":[]}

Códigos de erro


[block:parameters] { "data": { "h-0": "Código", "h-1": "Descrição", "0-0": "101", "1-0": "103", "2-0": "105", "3-0": "106", "4-0": "110", "5-0": "201", "6-0": "202", "7-0": "203", "8-0": "204", "9-0": "205", "10-0": "206", "11-0": "207", "12-0": "209", "13-0": "210", "14-0": "211", "15-0": "214", "16-0": "303", "17-0": "304", "18-0": "305", "19-0": "306", "20-0": "601", "0-1": "Erro genérico", "1-1": "Falha no envio de email", "2-1": "Número de caracteres acima do permitido", "3-1": "Número de caracteres acima do permitido para a propriedade shortName", "4-1": "Erro no comando FNC", "5-1": "Falta ativar o Stone Code", "6-1": "Stone Code informado já foi ativado", "7-1": "Valor informado para transação é inválido", "8-1": "Transação cancelada durante operação", "9-1": "Transação inválida", "10-1": "Falha na transação", "11-1": "Tempo da transação expirado", "12-1": "Stone Code desconhecido", "13-1": "Transação já foi cancelada", "14-1": "Transação negada", "15-1": "Operação cancelada pelo usuario", "16-1": "Conexão com o pinpad não encontrada", "17-1": "Tabelas AID e CAPK não encontradas", "18-1": "Erro ao carregar tabelas para o pinpad", "19-1": "Erro no request", "20-1": "Erro na conexão com a internet" }, "cols": 2, "rows": 21 } [/block]
[block:parameters] { "data": { "h-0": "Código", "h-1": "Descrição", "0-0": "101", "1-0": "103", "2-0": "105", "3-0": "106", "4-0": "110", "5-0": "201", "6-0": "202", "7-0": "203", "8-0": "204", "9-0": "205", "10-0": "206", "11-0": "207", "12-0": "209", "13-0": "210", "14-0": "211", "15-0": "214", "16-0": "303", "17-0": "304", "18-0": "305", "19-0": "306", "20-0": "601", "0-1": "Erro genérico", "1-1": "Falha no envio de email", "2-1": "Número de caracteres acima do permitido", "3-1": "Número de caracteres acima do permitido para a propriedade shortName", "4-1": "Erro no comando FNC", "5-1": "Falta ativar o Stone Code", "6-1": "Stone Code informado já foi ativado", "7-1": "Valor informado para transação é inválido", "8-1": "Transação cancelada durante operação", "9-1": "Transação inválida", "10-1": "Falha na transação", "11-1": "Tempo da transação expirado", "12-1": "Stone Code desconhecido", "13-1": "Transação já foi cancelada", "14-1": "Transação negada", "15-1": "Operação cancelada pelo usuario", "16-1": "Conexão com o pinpad não encontrada", "17-1": "Tabelas AID e CAPK não encontradas", "18-1": "Erro ao carregar tabelas para o pinpad", "19-1": "Erro no request", "20-1": "Erro na conexão com a internet" }, "cols": 2, "rows": 21 } [/block]
{"_id":"585abecb4a119e37009dac76","slug":"sdk","type":"basic","link_external":false,"next":{"pages":[],"description":""},"version":"5845b77639950c1b002afe4c","__v":0,"api":{"results":{"codes":[{"language":"json","code":"{}","name":"","status":200},{"code":"{}","name":"","status":400,"language":"json"}]},"settings":"","auth":"required","params":[],"url":""},"excerpt":"","isReference":false,"link_url":"","title":"SDK iOS","updates":[],"user":"57ea79f61780cd170064f273","body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Link iOS SDK\"\n}\n[/block]\n[https://github.com/stone-pagamentos/sdk-ios-v2](https://github.com/stone-pagamentos/sdk-ios-v2)","category":"585abe736c57951900c0f19f","githubsync":"","project":"5845b77639950c1b002afe49","sync_unique":"","createdAt":"2016-12-21T17:41:31.261Z","hidden":false,"order":999,"childrenPages":[]}

SDK iOS


[block:api-header] { "type": "basic", "title": "Link iOS SDK" } [/block] [https://github.com/stone-pagamentos/sdk-ios-v2](https://github.com/stone-pagamentos/sdk-ios-v2)
[block:api-header] { "type": "basic", "title": "Link iOS SDK" } [/block] [https://github.com/stone-pagamentos/sdk-ios-v2](https://github.com/stone-pagamentos/sdk-ios-v2)