A biblioteca do Node.JS Server para a API da App Store Server e as notificações do App Store Server. Também disponível em Swift, Python e Java.
Instalação
Documentação
Uso
Apoiar
Nó 16+
# Com npmnpm install @apple/app store-server-library-save# com yarnyarn add @apple/app store-sever-sever-library
Documentação
Vídeo WWDC
Para usar a API da App Store Server ou criar assinaturas de oferta promocional, é necessária uma chave de assinatura baixada da App Store Connect. Para obter essa chave, você deve ter a função de administrador. Vá para usuários e acesse> integrações> compra no aplicativo. Aqui você pode criar e gerenciar chaves, além de encontrar seu ID do emissor. Ao usar uma chave, você também precisará do ID da chave e do ID do emissor.
Faça o download e armazene os certificados raiz encontrados na seção Certificados da Apple Root do site Apple PKI. Forneça esses certificados como uma matriz a um dataveragem assinado para permitir a verificação dos dados assinados da Apple.
importar {AppStoreReverapiclient, Environment, SendTestNotificationResponse} de "@Apple/App-Store-Server-Library" const ISSUERID = "99B16628-15E4-4668-972B-EEFF55EFF55" const KeyId = "abcdefghij" const B nos const Backer =ff5555. filepath = "/via, Resposta: SendTestnotificationResponse = Aguarda client.requestTestnotification () console.log (resposta)} catch (e) {console.error (e)} importar {SignEDDataveriFier} de "@Apple/App-Store-Server-Library" const bundleid = "com.example" const appleOotcas: buffer [] = loadrootcas () // implementação específica pode variar o APPLECID = indefinido // AppAppleId é necessário quando o ambiente é o ProductionCnst Verifier = new SignedDataverifier (AppleRootcas, EnableonLineChecks, Ambiente, BundleId, ApppleId) const NotificationPayload = "Ey ... verificado emtificação) importar {Appstoreserverapiclient, ambiente, getTransactionHistoryVersion, ReciptUtility, Order, ProductType, HistoryResponse, TransactionHistoryRequest} de "@Apple/Apptore-SERVER-Library" const ISSUERID = "99B16628-15E4-4668888Beerid =" 99B1662828-15e4-468888-972Berid = " "const bundleId =" com.example "const filepath =" /path/to/key/subscriptionKey_abcdefghij.p8"const codedKey = readfile (filepath) // implementação específica pode variando o ambiente, o ambiente. , issuerID, bundleId, ambiente) const apreciet = "mi ..." const receptUtil = new Reciptutility () const transactionId = receptutil.extractRansactionIdFromApReCeipt (apreciat) if (transactionID! Ascendente, revogada: false, ProductTypes: [ProductType.auto_renewable]} Deixe a resposta: HistoryResponse | null = transações nulllet: string [] = [] do {const revisionToken = Response! == null && Response.Revision! == NULL? Response.Revision: NullResponse = Await client.getTransactionHistory (transactionID, revisionToken, transactionHistoryRequest, getTransactionHistoryversion.v2) if (Response.Signedtransactions) {transações = transações.Concat (resposta.SignEdTransation)} while (Response.has.has.has. transações)} importar {promotionalffersignaturCreator} de "@Apple/App-store-server-library" const keyid = "abcdefghij" const bundleid = "com.example" (filepath) // A implementação específica pode variar o produto productId = "<Product_id>" = new PromotionalOfferSignatureCreator (codedKey, keyid, bundleId) const Signature = signatureCreator.createsignature (productId, assinaturafferid, ApplicationUserName, Nonce, Timestamp) Console.log (Signature)Somente a versão principal mais recente da biblioteca receberá atualizações, incluindo atualizações de segurança. Portanto, é recomendável atualizar para novas versões principais.