diff --git a/src/Pix.php b/src/Pix.php index cc66bc5..0561dfe 100644 --- a/src/Pix.php +++ b/src/Pix.php @@ -22,15 +22,15 @@ class Pix extends Kore 'solicitacaoPagador' => $payload['solicitacaoPagador'] ?? null ]; - if (isset($payload['devedor'])){ - if (strlen($payload['devedor']['documento']) > 11){ + if (isset($payload['devedor'])) { + if (strlen($payload['devedor']['documento']) > 11) { $korePayload['devedor']['cnpj'] = $payload['devedor']['documento']; - }else{ + } else { $korePayload['devedor']['cpf'] = $payload['devedor']['documento']; } $korePayload['devedor']['nome'] = $payload['devedor']; } - + return curlRequest( 'https://httpbin.org/post', 'POST', @@ -59,15 +59,15 @@ class Pix extends Kore 'solicitacaoPagador' => $payload['solicitacaoPagador'] ?? null ]; - if (isset($payload['devedor'])){ - if (strlen($payload['devedor']['documento']) > 11){ + if (isset($payload['devedor'])) { + if (strlen($payload['devedor']['documento']) > 11) { $korePayload['devedor']['cnpj'] = $payload['devedor']['documento']; - }else{ + } else { $korePayload['devedor']['cpf'] = $payload['devedor']['documento']; } $korePayload['devedor']['nome'] = $payload['devedor']; } - + return curlRequest( 'https://httpbin.org/post', 'POST', @@ -80,7 +80,7 @@ class Pix extends Kore ); } - + public function pixCobrancaDinamicoImediatoSaqueSemValor($payload) { pixCobrancaImediataSaqueSemValorRules($payload); @@ -93,6 +93,50 @@ class Pix extends Kore 'retirada' => [ 'saque' => [ 'valor' => $payload['valor'] ?? 0, + 'modalidadeAlteracao' => 1, + 'prestadorDoServicoDeSaque' => $payload['ispb'], + 'modalidadeAgente' => $payload['modalidadeAgente'] + ] + ] + ], + 'chave' => $payload['chave'], + 'txid' => $payload['txid'], + 'solicitacaoPagador' => $payload['solicitacaoPagador'] ?? null + ]; + + if (isset($payload['devedor'])) { + if (strlen($payload['devedor']['documento']) > 11) { + $korePayload['devedor']['cnpj'] = $payload['devedor']['documento']; + } else { + $korePayload['devedor']['cpf'] = $payload['devedor']['documento']; + } + $korePayload['devedor']['nome'] = $payload['devedor']; + } + + return curlRequest( + 'https://httpbin.org/post', + 'POST', + [], + [ + 'x-kore-drone-uid: drone:' . $this->drone, + 'x-kore-drone-sign: ' . $this->signBody($korePayload) + ], + $payload + ); + } + + public function pixCobrancaDinamicoImediatoSaqueComValor($payload) + { + pixCobrancaImediataSaqueComValorRules($payload); + $korePayload = [ + 'calendario' => [ + 'expiracao' => $payload['expiracao'] ?? 86400, + ], + 'valor' => [ + 'original' => 0, + 'retirada' => [ + 'saque' => [ + 'valor' => $payload['valor'], 'modalidadeAlteracao' => 0, 'prestadorDoServicoDeSaque' => $payload['ispb'], 'modalidadeAgente' => $payload['modalidadeAgente'] @@ -104,15 +148,15 @@ class Pix extends Kore 'solicitacaoPagador' => $payload['solicitacaoPagador'] ?? null ]; - if (isset($payload['devedor'])){ - if (strlen($payload['devedor']['documento']) > 11){ + if (isset($payload['devedor'])) { + if (strlen($payload['devedor']['documento']) > 11) { $korePayload['devedor']['cnpj'] = $payload['devedor']['documento']; - }else{ + } else { $korePayload['devedor']['cpf'] = $payload['devedor']['documento']; } $korePayload['devedor']['nome'] = $payload['devedor']; } - + return curlRequest( 'https://httpbin.org/post', 'POST', diff --git a/src/rules.php b/src/rules.php index 20ec273..38e37c3 100644 --- a/src/rules.php +++ b/src/rules.php @@ -1,11 +1,11 @@ 'integer', + 'expiracao' => 'sometimes|integer', 'devedor' => 'sometimes|array', 'devedor.documento' => 'sometimes|string|min:11|max:18', 'devedor.nome' => 'sometimes|required_with:devedor.documento|string|max:100', @@ -22,11 +22,10 @@ function pixCobrancaImediataComValorRules(array $data) } } - function pixCobrancaImediataSemValorRules(array $data) { $rules = [ - 'expiracao' => 'integer', + 'expiracao' => 'sometimes|integer', 'devedor' => 'sometimes|array', 'devedor.documento' => 'sometimes|string|min:11|max:18', 'devedor.nome' => 'sometimes|required_with:devedor.documento|string|max:100', @@ -35,7 +34,7 @@ function pixCobrancaImediataSemValorRules(array $data) 'txid' => 'required|string|max:100', 'solicitacaoPagador' => 'string|max:140' ]; - + $validate = validate($data, $rules); if (!$validate['valid']) { throw new Exception(json_encode(array_slice($validate['errors'], 0, 1)), 500); @@ -44,11 +43,10 @@ function pixCobrancaImediataSemValorRules(array $data) } } - function pixCobrancaImediataSaqueSemValorRules(array $data) { $rules = [ - 'expiracao' => 'integer', + 'expiracao' => 'sometimes|integer', 'devedor' => 'sometimes|array', 'devedor.documento' => 'sometimes|string|min:11|max:18', 'devedor.nome' => 'sometimes|required_with:devedor.documento|string|max:100', @@ -59,7 +57,30 @@ function pixCobrancaImediataSaqueSemValorRules(array $data) 'ispb' => 'required|string', 'modalidadeAgente' => 'required|string|in:agtec,agtot,agpss' ]; - + + $validate = validate($data, $rules); + if (!$validate['valid']) { + throw new Exception(json_encode(array_slice($validate['errors'], 0, 1)), 500); + } else { + return true; + } +} + +function pixCobrancaImediataSaqueComValorRules(array $data) +{ + $rules = [ + 'expiracao' => 'sometimes|integer', + 'devedor' => 'sometimes|array', + 'devedor.documento' => 'sometimes|string|min:11|max:18', + 'devedor.nome' => 'sometimes|required_with:devedor.documento|string|max:100', + 'valor' => 'required|integer', + 'chave' => 'required|string', + 'txid' => 'required|string|max:100', + 'solicitacaoPagador' => 'string|max:140', + 'ispb' => 'required|string', + 'modalidadeAgente' => 'required|string|in:agtec,agtot,agpss' + ]; + $validate = validate($data, $rules); if (!$validate['valid']) { throw new Exception(json_encode(array_slice($validate['errors'], 0, 1)), 500);