istpay/istpay-php-sdk

Istpay 银行 REST API 的 SDK

v1.0.2 2023-09-26 13:59 UTC

This package is auto-updated.

Last update: 2024-09-26 19:22:16 UTC


README

Istpay 银行 REST API 的 SDK

安装

composer require istpay/istpay-php-sdk

支票

在支票中生成收费。

use IstpaySDK\SDK\Istpay;

$istpay = new Istpay('token');
$istpayGateway = $istpay->gateway();

$istpayGateway->setCart([
    [
        "title" => 'product 1',
        "price" => 6,
        "quantity" => 1
    ],
    [
        "title" => 'product 2',
        "price" => 12,
        "quantity" => 2
    ]
]);
$istpayGateway->setCustomer([
    "name" => 'fulano da silva',
    "document" => '111.222.333-44',
    "phone" => '55 999112233',
    "email" => 'fulanodasilva@gmail.com',
    "address" => [
        "zipcode" => '0000000',
        "city" => 'Cidade',
        "street" => 'Rua',
        "number" => '434',
        "district" => 'Bairro',
        "adjunct" => 'sem complemento',
        "state" => 'Estado',
        "codIbge" => '0000000'
    ]
]);
$istpayGateway->setShipping(["title" => "free", "price" => 0]);
$istpayGateway->setNotificationUrl('https://mysystem.com.br/webhook');
$istpayGateway->setCustomerIP('45.234.1.68');

$response = $istpayGateway->boleto();

echo $response->success(); // TRUE se a cobrança foi gerada com sucesso
echo $response->orderID(); // ID da ordem gerada na Istpay Checkout, retorna NULL em caso de erro 422 (http code error)
var_dump($response->getErrors()); // Array de erros
echo $response->paymentCode(); // barcode do boleto
echo $response->paymentStatus(); // status da cobrança, pode ser 'paid', 'pending', 'canceled' ou 'failed', em caso de erro 422 retornara  NULL
echo $response->transactionID(); // id da transação, em caso de erro pode retornar NULL
echo $response->boletoPDFLink(); // link para acessar o PDF do boleto
echo $response->boletoDueDate(); // data de vencimento do boleto
echo $response->isPaid(); // TRUE se o status retornado for 'paid'
echo $response->isPending(); // TRUE se o status retornado for 'pending'
echo $response->isCanceled(); // TRUE se o status retornado for 'canceled'
echo $response->isFailed(); // TRUE se o status retornado for 'failed'

PIX

在 PIX 中生成收费。

//apenas mude essa linha do codigo acima 
$response = $istpayGateway->boleto();
//para 
$response = $istpayGateway->pix();

// os metodos listados aqui são os que mudam seu comportamento quando a cobrança for no pix
echo $response->paymentCode(); // chave pix para pagamento
echo $response->boletoPDFLink(); // retornara NULL
echo $response->boletoDueDate(); // retornara NULL

信用卡

在信用卡中生成收费。

// campos a acrecentar
$istpayGateway->setCardFlag('visa');
$istpayGateway->setHolder('fulano da silva');
$istpayGateway->setCvv('123');
$istpayGateway->setCardHolderDocument('111.222.333-44'); // cpf do titular do cartão
$istpayGateway->setCardNumber('111 222 3333 4444');
$istpayGateway->setCardExpiringDate('04/25'); // mm/yy
$istpayGateway->setInstallments(4); // de 1 a 12

//apenas mude essa linha do codigo acima 
$response = $istpayGateway->boleto();
//para 
$response = $istpayGateway->creditCard();

// os metodos listados aqui são os que mudam seu comportamento quando a cobrança for no cartão de credito
echo $response->paymentCode(); // retornara NULL
echo $response->boletoPDFLink(); // retornara NULL
echo $response->boletoDueDate(); // retornara NULL

提现

  • 验证 PIX 密钥
use IstpaySDK\SDK\Istpay;

$istpay = new Istpay('token');
$istpayWithdraw = $istpay->withdraw();

$response = $istpayWithdraw->checkPixKey([
    'pix_key' => 'chave pix',
    'type_key' => 'tipo da chave' // document, phoneNumber, email, randomKey, paymentCode
]);

if ($response->success())
{
    $res_obj = $response->responseToObject();
    echo $res_obj->value;                               // 0,
    echo $res_obj->typeKey;                             // "cpf",
    echo $res_obj->destinationAccountOwnerName;         // "Salvatore Strandburg",
    echo $res_obj->destinationAccountOwnerSocialNumber; // "***.893.450-**",
    echo $res_obj->destinationAccountOwnerSocialType;   // "individual",
    echo $res_obj->destinationAccountType;              // "payment",
    echo $res_obj->destinationBankIspb;                 // "39231527",
    echo $res_obj->destinationBank;                     // "UNICRED COSTA DO SOL RJ",
    echo $res_obj->destinationAgency;                   // "3964",
    echo $res_obj->destinationAccountNumber;            // "6981656148545163",
    echo $res_obj->active;                              // true
} else {
    var_dump($response->getErrors()); // array de erros
}
  • 通过 PIX 转账
use IstpaySDK\SDK\Istpay;

$istpay = new Istpay('token');
$istpayWithdraw = $istpay->withdraw();

$response = $istpayWithdraw->pixTransfer([
    'pix_key' => 'chave pix',
    'type_key' => 'tipo da chave', // document, phoneNumber, email, randomKey, paymentCode
    'amount' => 5,
    'internal_identifier' => "user-0001"
]);

if ($response->success())
{
    $res_obj = $response->responseToObject();
    echo $res_obj->status; 
    echo $res_obj->amount;
    echo $res_obj->pix_key;
    echo $res_obj->key_type;
    echo $res_obj->transaction_id;
    echo $res_obj->message;
} else {
    var_dump($response->getErrors()); // array de erros
}

其他端点

购物车被遗弃

  • 列出 Shop 被遗弃的购物车
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->abandonedCart();

$response = $istpay->get();

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}

购买按钮

  • 列出 shop id 的购买按钮
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->buyButtons();

$response = $istpay->get(
    123, //shop_id
    [
        'product_ids' => [1, 2, 3] // opcional
    ]   
);

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}

客户

  • 按 Shop 列出客户
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->customers();

$response = $istpay->get(
    [
        'id' => 12, // opcional
        'name' => 'fulano da silva', // opcional
        'email' => 'fulanodasilva@gmail.com', // opcional
        'document' => '111.222.333-44' // opcional
    ]   
);

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}

仪表板

  • 通过 token 列出 shop 的仪表板数据
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->dashboard();

$response = $istpay->get(
    'shop_token',
    '01/01/2022',
    '01/01/2023',
);

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}

折扣

  • 按 shop id 列出折扣
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->discounts();

$response = $istpay->get(
    123, // shop_id
    [
        'product_id' => 123, // opcional
        'payment_method' => \IstpaySDK\SDK\Gateway\Gateway::PAYMENT_METHOD_PIX, // pix|boleto|credit_Cart - opcional
        'automatic_apply' => 1, // opcional
        'newsletter_abandoned_carts' => 1, // opcional
    ]   
);

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}
  • 通过优惠券验证折扣
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->discounts();

$response = $istpay->validateCoupon(
    123, // shop_id
    [
        'code' => 'OIVCGC74F',
        'total_order' => 100,
        'email_customer' => "fulanodasilva@gmail.com",
        'payment_method' => \IstpaySDK\SDK\Gateway\Gateway::PAYMENT_METHOD_PIX, //pix|boleto|credit_Cart
        'product_ids' => "999,1000",
    ]   
);

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}

通知

  • 按 shop 列出通知
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->notifications();

$response = $istpay->list('shop_token');

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}

订单提升

  • 按 shop id 列出订单提升
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->orderBumps();

$response = $istpay->get(
    123, // shop_id
    [
        'product_id' => 10471, // opcinal
        'products_ids' => '10471,5435', // opcinal
        'rules_to_show' => 'always', // opcinal
        'values_rules_to_show' => '>100', // opcinal
        'payment_method' => \IstpaySDK\SDK\Gateway\Gateway::PAYMENT_METHOD_CREDIT_CARD, //pix|boleto|credit_Cart - opcinal
    ]   
);

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}

订单

  • 按 Shop 列出订单
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->orders();

$response = $istpay->get([
        'id' => 10471, // opcinal
        'start_date' => '01/01/2023', // opcinal
        'end_date' => '01/09/2023', // opcinal
        'product' => 343, // opcinal
        'customer' => 455, // opcinal
        'external_identification' => '2dc0204d-4971-4bf3-a1e8-13c8fnf65sp784ce55', // opcinal
        'payment_method' => \IstpaySDK\SDK\Gateway\Gateway::PAYMENT_METHOD_CREDIT_CARD, //pix|boleto|credit_Cart - opcinal
    ]);

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}

支付

  • 按 Shop 列出订单支付
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->payments();

$response = $istpay->get([
        'order_id' => 10471, // opcinal
        'status' => \IstpaySDK\SDK\Gateway\Gateway::PAYMENT_STATUS_PAID, // paid|failed|pending|canceled - opcional
        'method' => \IstpaySDK\SDK\Gateway\Gateway::PAYMENT_METHOD_CREDIT_CARD, //pix|boleto|credit_Cart - opcional
    ]);

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}

像素

  • 按 shop id 列出像素
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->pixels();

$response = $istpay->get(
    5 // shop_id
);

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}

货运选项

  • 按 shop id 列出货运选项
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->shippingOptions();

$response = $istpay->get(
    5, // shop_id
    [
        'total_amount_items_order' => 100, // opcional
        'product_ids' => '1,2,3', // opcional
        'states' => 'PR', // opcional
    ]   
);

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}

Shop

  • 通过 token 列出 shop 数据
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->shop();

$response = $istpay->get();

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}

用户设备

  • 列出 Shop 注册的设备
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->userDevices();

$response = $istpay->list('shop_token');

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}
  • 通过 Shop 注册新设备
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->userDevices();

$response = $istpay->store(
    'shop_token',
    'device_id'
);

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}

产品

  • 通过 shop 创建数字产品
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->products();

$response = $istpay->create([
    'title' => 'auto test',
    'description' => 'description auto test',
    'price' => 10.5,
    'redirect_url_card' => 'url',
    'type' => Products::TYPE_DIGITAL,
]);

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}
  • 通过 shop 创建数字产品
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->products();

$response = $istpay->update(
    3423, // product_id
    [
        'title' => 'auto test',
        'description' => 'description auto test',
        'price' => 10.5,
        'redirect_url_card' => 'url',
        'type' => Products::TYPE_DIGITAL,
    ]
);

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}
  • 通过 shop 删除数字产品
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->products();

$response = $istpay->delete(
    3423, // product_id
);

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}
  • 按 Shop 列出产品
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->products();

$response = $istpay->get([
    'id' => 123, //product_id - opcional
    'title' => 'product title', // opcional
]);

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}

集成

  • 与 WooCommerce 集成
use IstpaySDK\SDK\Istpay;

$istpay = (new Istpay('token'))->integrations();

$response = $istpay->woo_integration([
    "woo_url_store" => "www.myshop.com",
    "woo_consumer_key" => "ck_47549572a85fdbf8d4a82b85gfd877d4d7d4e2da",
    "woo_consumer_secret" => "cs_f5167a95f9ce7ecb62fhgd6c193f758052554df2",
    "allow_woo_cart" => false
]);

if ($response->success())
{
    var_dump($response->responseToArray());
} else {
    var_dump($response->getErrors()); // array de erros
}