Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel
Помог: 3 раз(а)
|
Оплата кредитками происходит через специальных агентов
pelec ard.co.il и tranzila.com
открытие счета стоит у них порядка 120$
в последствии вы от них получите учетную запись, ссылку и документацию по доступу к их веб сервису. За каждую транзакцию вам будет поступать около 96% от суммы покупки.
В отличии от веб мани, пользователь не перенаправляется на другой сайт для оплаты.
Оплата происходит следующим образом:
пользователь вводит на твоем сайте данные своей кредитки,
ты в своем скрипте открываешь сокет и подключаешься к серверу одной из этих компаний,
отправляешь им эти данные, ждешь пол секунды и получаешь один из сотни возможных кодов-ответов. Чаще всего это "все ок" или "какие-то данные не верны".
Еще желательно выписать клиенту квитанцию об оплате.
Для этого я использовал сервис invoice4u.co.il
у которырх регистрация бесплатна и оплата получается парой центов за квитанцию.
После регистрации так-же получаешь йд и пароль, который и отправляешь в качестве одного из параметров в своем коде. В ответ получаешь ссылку на квитанцию.
Сервис умеет одновременно и отправлять квитанцию на имейл пользователя.
Для pelecard и invoice4u у меня есть готовые функции.
Правда без документаций от них они могут быть не очень понятными.
PHP:
скопировать код в буфер обмена
class paylecard { public static $host = "secure.pelecard.co.il"; public static $path = "/NetsafeWebSrvc/NetSafeSrvc.asmx/DebitRegularType"; public static function pay($creditcard, $creditcarddateMMYY, $total, $taz, $cvv, $parmx, $TermNo = '0962210', $ShopNo = '1', $currency = 1) { $data = 'TermNo='.$TermNo.'&ShopNo='.$ShopNo.'&creditcard='.$creditcard. '&creditcarddateMMYY='.$creditcarddateMMYY.'&total='.$total.'&ID='.$taz.'&CVV='.$cvv. '&ParmX='.$parmx.'&Currncy='.$currency ; $fp = fsockopen( paylecard ::$host, 443 , $errno, $errstr, 10 ); if(!$fp) return "socket error"; ( $fp, "POST ". paylecard::$path ." HTTP/1.1\n". "Host: ".paylecard::$host." \n" . "Accept: application/x-www-form-urlencoded\n" . "Connection: Close\n" . "Content-type: application/x-www-form-urlencoded\n". "Content-length: ".strlen( $data )."\n\n" . $data ."\n\n" ); $out = ''; $GLOBALS['out'] = $out; $GLOBALS['res'] = $res; if($res == '000') return true; return $res; } public static function invoice4u($itemid, $description, $quantity, $item_price, $shipment_price, $client, $email, $invoice_overall_description='' , $comments = '', $discount = 0) { global $i4u_username, $i4u_maam_rate, $i4u_shipment_text, $i4u_userkey; ( 'ReplyURL' => '',//'invoiceSent.php', 'TransType' => 'IR:CREATE', 'Username' => $i4u_username, 'Key' => $i4u_userkey, 'InvoiceSubject' => iconv('UTF-8', 'Windows-1255', $invoice_overall_description), 'InvoiceItemCode' => $itemid.'|0', // Append shipment 'InvoiceItemDescription' => iconv('UTF-8', 'Windows-1255', $description).'|'.$i4u_shipment_text, 'InvoiceItemQuantity' => $quantity."|1", // append one shipment 'InvoiceItemPrice' => ($item_price/((100+$i4u_maam_rate)/100))."|".($shipment_price/((100+$i4u_maam_rate)/100)), 'InvoiceDiscount' => $discount, 'InvoiceComments' => iconv('UTF-8', 'Windows-1255', $comments), 'CompanyCode' => '', 'CompanyInfo' => iconv('UTF-8', 'Windows-1255',$client), 'MailTo' => $email )); // for multiple items in a single invoice, sepereate them with | // InvoiceItemCode, InvoiceItemDescription, InvoiceItemQuantity, InvoiceItemPrice must have the same count of items. // Items are separated by the PIPE symbol. $ch = curl_init('http://account.invoice4u.co.il/public/HttpPost.aspx'); $return = new stdClass(); $responseCode = explode(':',$response[0 ]); $return->code = $responseCode[1]; $responseStatus = explode(':',$response[1 ]); $return->status = $responseStatus[1]; $docNum = explode(':',$response[2 ]); $return->docnum = $docNum[1]; $docUrl = explode(':', $response[3 ]); $return->url = $docUrl[1].':'.$docUrl[2]; // http : // ... return $return; } }
(Отредактировано автором: 14 Апреля, 2011 - 12:10:58)
|