SDK oficial para integração de pagamentos PayPay Angola. Suporte completo para MULTICAIXA Express, MULTICAIXA Reference e PayPay App.
# PayPay AO SDK
SDK oficial para integração de pagamentos PayPay Angola. Suporte completo para **MULTICAIXA Express**, **MULTICAIXA Reference** e **PayPay App**.
## 🚀 Características
- ✅ **MULTICAIXA Express** - Pagamentos imediatos via número de telefone
- ✅ **MULTICAIXA Reference** - Pagamentos por referência
- ✅ **PayPay App** - Pagamentos via aplicação móvel
- ✅ **TypeScript** - Tipagem completa para melhor experiência de desenvolvimento
- ✅ **Segurança** - Criptografia RSA PKCS1 e assinaturas SHA1withRSA
- ✅ **Validação** - Validação robusta de dados de entrada
## 📦 Instalação
```bash
npm install paypay-ao-sdk
```
ou
```bash
pnpm add paypay-ao-sdk
```
## 🔧 Configuração Inicial
### 1. Obter Credenciais
Para usar o SDK, você precisará de:
- **Partner ID** - Identificador do merchant
- **Chave Privada RSA** - Para assinar requisições
- **Chave Pública PayPay** - Para verificar respostas
- **Sale Product Code** - Código Único do produto fornecido pelo suporte Pay Pay
- **API URL** - Url autorizada da API fornecido pelo suporte Pay Pay
### 2. Inicialização Básica
```javascript
const PayPaySDK = require('paypay-ao-sdk');
const sdk = new PayPaySDK({
partnerId: 'SEU PARTNER ID',
privateKey: `-----BEGIN PRIVATE KEY-----
SUA_CHAVE_PRIVADA_RSA
-----END PRIVATE KEY-----`,
paypayPublicKey: `-----BEGIN PUBLIC KEY-----
CHAVE_PUBLICA_PAYPAY
-----END PUBLIC KEY-----`,
language: 'pt/en',
saleProductCode: 'Codigo do produto',
apiUrl:'URL da API'
});
```
## 💳 Uso Básico
### Express
Pagamento imediato processado diretamente via número de telefone:
```javascript
try {
const outTradeNo = PayPaySDK.generateUniqueOrderNo("MUL-");
const resp = await sdk.createMulticaixaPayment({
outTradeNo,
amount: amount,
phoneNum: phoneNum,
payerIp: ip,
});
console.log(resp);
} catch (error) {
console.error('Falha na requisição:', error.message);
}
```
### Reference
Pagamento por referência para processamento posterior:
```javascript
const outTradeNo = PayPaySDK.generateUnique …