Инструменты пользователя

Инструменты сайта


ru:api_solutions:api_page_good_with_payment_form:example_page_with_form_of_payment

Пример реализации платежной формы (PHP)

<?php
 
// Получение информации о товаре (карточка товара) с формой отправки для покупки товара
$url        = 'https://axefile.com/api/good_info/';
$merchant    = XXX; // Ваш ID партнера/продавца полученный при регистрации (целочисленное (integer))
$shop_hash    = 'XXXXXXXXXXXXXXXXXXXXXXXXXX'; // Секретный ключ для формирования подписи запроса (32 символа). Доступен после регистрации в кабинете партнера/продавца (строка (string))
$sign        = sha1(md5($merchant.$shop_hash)); // Формирование подписи запроса (64 символа), (строка (string))
$good        = XXX; // ID товара (целочисленное (integer))
 
$data        = array(
                    'merchant'     => $merchant,     // Ваш уникальный идентификатор ID мерчанта (ID продавца/партнера) (integer)
                    'signature'    => $sign,        // Сформированная подпись запроса (string)
                    'good'          => $good,         // Уникальный идентификатор ID товара (integer)
                    'currency'    => 'uah',         // В какой валюте выводить стоимость товара. Доступные валюты: uah,usd,rub,eur. По умолчанию: usd (string)
                    'language'    => 'ru',         // На каком языке выводить (ru - русский, en - английский). По умолчанию: en (string).
                    'format'     => 'json',         // Формат, в котором будет получен ответ на запрос (xml/json). По умолчанию: xml (string)
                    );
 
function get_xml_or_json($url,$data){
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
 
$request = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<request api_version="1.0">
    <merchant_data>
        <merchant>{$data['merchant']}</merchant>
        <signature>{$data['signature']}</signature>
    </merchant_data>
    <data>
        <good>{$data['good']}</good>
        <currency>{$data['currency']}</currency>
        <language>{$data['language']}</language>
        <format>{$data['format']}</format>
    </data>
</request>
XML;
 
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_HTTPHEADER,     array('Content-Type: application/'.$data['format'].'; charset=utf-8','Content-Length: '.strlen($request)));
$response = curl_exec($ch);
curl_close($ch);
 
return $response;
 
}
 
$x = get_xml_or_json($url,$data);
 
//print_r(json_decode($x,1));     // Вывод data в JSON (массив)
//print_r($x);             // Вывод RAW-data в XML/JSON
 
// Прием и вывод данных в XML формате
//xml = simplexml_load_string($x);
 
// Прием и вывод данных в XML формате
//var_dump($xml);
//print_r($xml);
 
// Пример доступа к XML данным
//echo $xml->status['status_descr']; // XML. Выводим с тега "status" значения атрибута "status_descr" и получаем описание статуса
//echo $xml->cnt; // XML. Выводим с тега "cnt" количество всех товаров продавца
 
############ FORM PAYMENT GOOD ###############

$data = json_decode($x,1); // Получаем данные по товару
//print_r($data); // а посмотреть
?>
 
<!DOCTYPE html>
<html lang="ru"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Test form of payment for the API Axefile.com / Тестовая форма оплаты API для Axefile.com</title>
    <body style="padding:20px 20px 20px 20px;">
 
<style>
h1{font-size:24px;}
hr{border-bottom:5px solid #E4E4E4;}
#pay_form > input.axe-input{font-size:18px;}
#pay_form > select.axe-input{font-size:18px;}
.hide {
    display: none;
}
</style>
 
<script>
 
function ChoiceCurrency()
{
var val    = new Array;
var txt    = new Array;
 
<?php for ($i = 0; $i <= count($data['gateways'])-1; $i++) {
        $price        = $data['gateways'][$i]['price'];
        $txt        = strtoupper($data['gateways'][$i]['currency']);
?>
// Add price visible
 
val[<?php echo $i; ?>] = <?php echo $price; ?>;
txt[<?php echo $i; ?>] = "<?php echo $txt; ?>";
 
<?php } ?>
 
var myselect = document.all("select_gateway_id").options;
for (var i=0; i< myselect.length; i++){
    if (myselect[i].selected==true){
        document.all("price").value = val[i-1];
        document.all("curr").value = txt[i-1];
        document.all("pay").disabled = '';
  break;
 }
}
 
}
</script>
 
 
        <h1>Оплата товара: <?=$data['good']['title'];?></h1>
        <hr>
        <form action="https://axefile.com/ru/pay/go/" method="post" name="pay_form" id="pay_form">
            <input type="hidden" name="merchant" value="<?php echo $merchant; ?>">
            <input type="hidden" name="signature" value="<?php echo $sign; ?>">
            <input type="hidden" name="good_id" value="<?php echo $good; ?>">
            <h3>Стоимость товара</h3>
            <input class="axe-input" type="text" name="price" id="price" size="11" value="<?php echo $data['good']['price']; ?>" readonly>
            <input class="axe-input" type="text" name="curr" id="curr" size="5" value="<?php echo strtoupper($data['good']['currency']); ?>" readonly><br />
            <?php if($data['good']['type']==2 || $data['good']['type']==3) { ?>
            <h3>Количество кода</h3>
            <input type="text" class="axe-input" name="quantity" value="1"> <label><strong>Доступно: <?php echo $data['good']['good_num']; ?> шт.</strong></label>
            <?php }else{ ?>
            <input type="hidden" name="quantity" value="1">
            <?php } ?>
            <h3>Выберите способ оплаты</h3>
            <select class="axe-input" name="select_gateway_id" id="select_gateway_id" onChange="ChoiceCurrency()">
                <option>Пожалуйста, выберите...</option>
                <?php for ($i = 0; $i <= count($data['gateways'])-1; $i++) {
                         $id     = $data['gateways'][$i]['id'];
                        $title    = $data['gateways'][$i]['title'];
                        $price    = $data['gateways'][$i]['price'];
                        $curr    = $data['gateways'][$i]['currency'];
                ?>
                    <option value="<?php echo $id; ?>"><?php echo $title; ?> [<?php echo strtoupper($curr); ?>]</option>
                <?php } ?>
            </select>
            <h3>Email покупателя</h3>
                <input class="axe-input" name="email_payer" id="email_payer" type="email" placeholder="Укажите Ваш email"><br /><br />
                <span><i>Пожалуйста, <strong>внимательно</strong> укажите Ваш действующий email для доставки товара</i></span><br />
                <hr>
                <input class="axe-input" id="pay" name="pay" value="Оплатить" type="submit">
        </form>
 
 
    </body>
</html>
ru/api_solutions/api_page_good_with_payment_form/example_page_with_form_of_payment.txt · Последние изменения: 2016/03/08 09:25 — root