Skip to content

Instantly share code, notes, and snippets.

@italoveloso
Created March 20, 2017 11:45
Show Gist options
  • Save italoveloso/67a9ba7d08f29582e20e58cc5ca6d276 to your computer and use it in GitHub Desktop.
Save italoveloso/67a9ba7d08f29582e20e58cc5ca6d276 to your computer and use it in GitHub Desktop.
Pagar.me card_id
<?php
require ("pagarme-php/Pagarme.php");
$apikey = "";
$encryption_key = "";
Pagarme::setApiKey($apikey);
$info_card_array = [
'card_number' => '4024007116225755',
'card_holder_name' => 'ANDREW BECKER',
'card_expiration_date' => '0917',
'card_cvv' => '632'];
$info_card_array = [
'card_number' => '4102652740863151',
'card_holder_name' => 'MIGUEL SAMUELS',
'card_expiration_date' => '0119',
'card_cvv' => '262'];
$info_card_array = [
'card_number' => '4797734470555221',
'card_holder_name' => 'MORGAN GIMSON',
'card_expiration_date' => '0218',
'card_cvv' => '634'];
// Tranformaçao de array para uma query http
$info_card_query = http_build_query($info_card_array);
// Substitui o caractere + por %20
$info_card_string = str_ireplace("+", '%20', $info_card_query);
//var_dump($info_card_string);
// Requisicao para pegar a chave publica
$cmd = "curl -X GET https://api.pagar.me/1/transactions/card_hash_key \
-d 'encryption_key=".$encryption_key."' \ ";
$data = exec($cmd);
// Transformacao string em objeto
$obj_data = json_decode($data);
// Criptografia RSA
openssl_public_encrypt($info_card_string, $crypted, $obj_data->public_key, OPENSSL_PKCS1_PADDING);
// Base64
$string_base64 = base64_encode($crypted);
// Construcao do formato card_hash
$card_hash = $obj_data->id . "_" . $string_base64;
// Impressao do card_hash
$card = new PagarMe_Card(array(
'card_hash' => $card_hash
));
$card->create();
$card_id = $card->id;
// Quardar o card_id para futuras transacoes
print("\n CARD ID \n");
print_r($card_id."\n");
// Iniciar transacao de assinatura de para efeito de teste do card_hash gerado
$subscription = new PagarMe_Subscription(array(
'plan' => PagarMe_Plan::findById("138745"),
'card' => PagarMe_Card::findById($card->id),
'customer' => [
'document_number'=>'18152564000105',
'name' => 'KoK',
'email' => 'eee@email.com',
'born_at' => '13121988',
'address' =>[
'zipcode'=>'05444040',
'neighborhood' => 'pinheiros',
'street' => 'rua qualquer',
'street_number' => '13',
],
'phone' => [
'ddi'=>'55',
'ddd'=>'11',
'number'=>'999887766'
]
]
));
$subscription->create();
print("subscription");
print_r($subscription);
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment