決済システムをゼロから構築します。 決済システムを通じてオンライン ストアで支払いを行うにはどうすればよいですか? 支払い受け入れオプション

第 4 章 ロシアの国家決済システムの要素としての決済システム

§ 1. 決済システムの構築手順

すでに述べたように、支払いシステムは人為的に形成されたものであり、その基礎は特定の人物、つまり支払いシステムのオペレータの意志にあり、すべての参加者間の契約関係に基づいて動作します。 決済システムのルールは決済システム運営者が定めます。

決済システム運営者は、決済システムを作成した法人です。 支払いシステムの運営者は、信用機関、信用機関ではないがロシア連邦の法律に従って設立された組織、ロシア銀行、またはヴネシェコノムバンクの場合があります(国家決済システム法第 15 条)。 。 この条項の規範の文面から、支払いシステムの運営者は外国法人であってはいけないということになります。 この規範は、ロシアの国民支払いシステムの国民性の原則の現れの1つです。 ロシアで何らかの形式で決済サービスを提供していたすべての外国組織は現在、その活動を国家決済システム法の要件に準拠させることが求められている。 最も簡単な方法は、そのような組織が決済システム運営者の地位を取得することです。

ロシア銀行は、国家決済システム法に基づいて決済システム運営者として業務を行っています。 他のすべての組織は、国家決済システム法に規定された方法で決済システム運営者の地位を取得する必要があります。

決済システム運営者になろうとする組織は、ロシア銀行に登録申請書を送付する必要があります。 この申請書を送信する手順は、2012 年 5 月 2 日付けの決済システム オペレーターの登録申請書をロシア銀行に送信する手順に関するロシア銀行規則、No. 378-P によって規定されています。

信用機関が決済システム運営者になろうとする場合は、登録申請書に次の書類を添付する必要があります。

  • 支払いシステムの組織化に関する信用機関の管理団体の決定。
  • 支払いシステムのルール。
  • 決済システムにおける決済インフラストラクチャサービスの提供に従事する決済インフラストラクチャサービスオペレーターのリスト。

非信用組織が決済システム運営者になることを意図している場合、次の要件を満たす必要があります。

  • 少なくとも1,000万ルーブルの純資産を持っている。
  • このような組織の唯一の執行機関および会計主任の地位にある個人は、高等経済教育、高等法教育、または情報通信技術分野の高等教育を受けていなければならず、他の高等教育を受けた場合には、部門の管理経験が必要です。少なくとも 2 年間、信用機関または決済事業者のシステムの他の部門に従事する。
  • そのような組織の唯一の執行機関および会計主任の地位にある個人は、経済分野における犯罪の前科を有してはならず、また、これに基づいて雇用主の主導でその者との雇用契約を解除したという事実を有してはなりません。第 1 部第 7 条に規定されています。 ロシア銀行への登録申請書の提出日から遡る 2 年間に、ロシア連邦労働法第 81 条に準拠する必要があります。

信用機関以外の組織が決済システム運営者になろうとする場合の登録申請書には、以下の書類が添付されます。

  • 構成文書。
  • 支払いシステムの構成に関するそのような組織の認可機関の決定。
  • 今後 2 暦年間の決済システム開発の事業計画。市場およびインフラストラクチャ要因の分析を含む、決済システムの組織化の目標と計画結果を示します。
  • この連邦法の要件に準拠した支払いシステム規則。
  • 決済システムにおける決済インフラストラクチャサービスの提供に従事する決済インフラストラクチャサービスオペレータのリスト。
  • 支払いシステムの決済センターとなるための信用機関の書面による同意(信用機関と締結した契約の形式を含む)。
  • 組織の純資産の規模に関する情報を含む文書。登録のためにロシア銀行に文書を提出した日よりも前の最終報告日時点で作成された財務報告書が添付されています。
  • 要件への準拠を確認する文書。

決済システム運営者になろうとする組織から登録申請を受領した日から30暦日を超えない期間内に、ロシア銀行は当該組織を決済システム運営者として登録する決定、または登録を拒否する決定を下します。このような登録。

組織を決済システムオペレーターとして登録する決定がなされた場合、ロシア銀行はその組織に登録番号を割り当て、その情報を決済システムオペレーターの登録簿に記載し、遅くとも5時までに組織に登録証明書を送付します。この決定が採択された日から数日。

支払いシステムには、支払いシステムの規則で指定された名前があり、「支払いシステム」という単語が含まれている必要があります。 ロシア連邦のいかなる組織も、決済システムオペレーターの登録簿に登録されている組織を除き、その名前(会社名)に「決済システム」という言葉を使用したり、決済システムオペレーターの活動を示したりすることはできません。 決済インフラストラクチャサービスの運営者および決済システム参加者は、決済システムの規則に従って、決済システムとの提携を示す権利を有します。 ロシア銀行は、ロシア銀行の決済システムに関して「決済システム」という言葉を使用する権利を有します。

ロシア銀行は、以下の場合、信用機関を決済システム運営者として登録することを拒否します。

ロシア銀行は、以下の場合、信用機関ではない組織を決済システム運営者として登録することを拒否します。

  • 必要書類の提出を怠った場合。
  • 信用機関ではなく、決済システム運営者となることを意図している組織に規定されている要件を組織が遵守していないことを証明する。
  • 決済システムの開発されたルールと国家決済システム法の要件の不一致。

決済システム運営者としての登録を拒否した場合、ロシア銀行は決定日から5営業日以内に拒否の理由を示し、登録申請書を送付した組織に書面で通知する。

決済システムオペレーターは、ロシア銀行によって決済システムオペレーターの登録から除外される場合があります。 次のようなことが起こる可能性があります。

  • 組織に関する情報が決済システム運営者の登録簿から除外される営業日を示す決済システム運営者からの申請に基づき、申請書に指定された営業日であるが、申請日より前ではない。決済システム運営者が提出されます。
  • 決済システムの中断のない機能に影響を与える違反の排除を要求する命令に繰り返し従わなかった場合、そのような違反を排除するようロシア銀行に最初の命令を出した日から1年以内 - 業務上ロシア銀行が決定を下した日の翌日。
  • 信用機関である決済システム運営者に対し、年間に法的要件の違反を繰り返し申請した場合、当該違反が決済システムの継続的な機能に影響を与える場合には、法第74条に規定する措置が講じられる。ロシア銀行 - ロシア銀行による採用決定日の翌営業日。
  • ロシア銀行が監督を実施する際に、決済システム運営者の登録に基づいて行われた情報と重大な矛盾があるという事実を確立した場合、ロシア銀行による決定がなされた日の翌営業日。ロシア銀行。
  • ロシア銀行が決済システムの運営者である信用機関から銀行業務を行うためのライセンスを取り消した場合 - ロシア銀行によってライセンスが取り消された日の翌営業日。
  • 法人としての決済システム運営者が清算された場合 - ロシア銀行が決済システム運営者である法人の清算を認識した日の翌営業日。

他の理由で、決済システム運営者の登録簿から組織に関する情報を除外することは認められません。

信用機関であるロシア銀行またはヴネシュコノムバンクである決済システム運営者の場合、以下の場合に、決済システム運営者の活動を送金運営者、決済インフラストラクチャサービスの運営者およびその他の活動と組み合わせることが許可されます。これはロシア連邦の法律に矛盾するものではありません。 信用機関ではない決済システム運営者は、ロシア連邦の法律に反しない限り、その活動を決済インフラサービス運営者の活動(決済センターを除く)および他の活動と組み合わせることができます。 これはまったく論理的だと思われます。 したがって、資金の送金は、ロシア銀行からのライセンスに基づいて信用機関によって実行できる銀行業務です。 ロシア銀行とヴネシュコノムバンクは、その地位を定義する法律に基づいてこの業務を実行しています。 決済インフラサービス事業者に関しては、その 3 つのタイプごとに、特定の事業者の活動を実行する資格のある人物に関して特定の要件と制限が設定されています。 したがって、たとえば、決済センターは、決済システム参加者の銀行口座に資金を引き落としたり入金したりすることによって決済システム参加者の注文を実行しますが、これは銀行業務であるため、決済センターは信用機関、ロシア銀行、またはロシア銀行のみになることができます。ヴネシェコノムバンク。 また、オペレーションセンターの機能は、信用機関ではない組織によっても実行されます。その活動は、支払いシステムの参加者と他の利害関係者の間で電子メッセージの交換を保証することで構成されており、銀行サービス。

決済システム運営者は以下を行う義務があります。

  • 決済システムのルールを決定し、決済システム参加者および決済インフラストラクチャサービス運営者によるその遵守状況を整理および監視する。
  • 決済システム運営者が決済インフラサービス運営者の機能を組み合わせる場合を除き、決済インフラサービス運営者と連携する。
  • 決済インフラストラクチャサービスオペレーターのリストを維持し、決済システム参加者への決済インフラストラクチャサービスの中断のない提供を確保する。
  • 決済システムのリスク管理システムを組織し、決済システムのリスクを評価および管理し、決済システムが中断なく機能することを保証します。
  • 決済システムの規則に従って、決済システム参加者および決済インフラストラクチャサービス運営者との紛争について、前審および(または)仲裁の検討の可能性を提供します。

信用機関ではない決済システム運営者は、決済センターとして信用機関を関与させ、当該信用機関が開設した銀行口座に少なくとも1年間送金を行うことが義務付けられています。

著者より:皆さん、こんにちは! 統計によると、オンライン ストア訪問者の約 10% は、商品やサービスの支払い方法が理解できない、またはサイトに表示される支払い形式が不便であるため、購入代金を支払う段階で排除されてしまいます。 今日の記事では、オンラインストアで支払いを行う方法を学びます。 そしてこれはおそらく、投資なしで販売数を増やす最も簡単な方法です。

ほとんどの人は法的登録なしでオンライン ビジネスの作成を開始するため、個人向けに支払いをオンライン ストアに接続するプロセスを検討します。 今日の私たちの仕事は、商品を購入したいサイトユーザーから銀行カードに送金するプロセスを整理することです。 さらに、すべてが自動的に機能する必要があります。

初めてオンライン ストアを作成する場合は、まず効果的な商用 Web サイトの作成について読むことをお勧めします。 販売の準備ができているオンライン プラットフォームがある場合は、オンライン ストアでの支払いをどのように整理するかという問題をすぐに検討することができます。

問題の技術的な側面

技術的な観点から見ると、オンライン ストアで支払いを作成するプロセスは次のとおりです。 顧客が購入すると、請求書が発行されます。 次に、適切な支払いシステムを選択し、支払いを行うために必要なデータを入力します。

ユーザーがすべてを正しく指定した場合、支払いシステム サーバーはオンライン ストアの事前に指定された URL にリクエストを送信し、取引プラットフォームがクライアントのアカウントに送金します。 データの指定が間違っていたり、その他の技術的な障害が発生した場合、システムは支払いが完了していないことをユーザーに通知します。

操作が成功すると、ユーザーは特別なページにリダイレクトされ、支払いが完了し、お金が入金されたことを示すコメントが表示されます。

支払いシステムの選択

さまざまな支払いシステムがたくさんありますが、そのうち最も人気のある 5 つのシステムに基づいて、オンライン ストアでの支払いを設定する方法に焦点を当ててみましょう。

ロボカサ

接続はいくつかの簡単な手順で行われます。Web サイトに登録し、オンライン ストアの詳細を入力し、Web サイトに支払いフォームを設定します。 Robokassa を使用した作業の詳細についても、特別な節度が必要です。 システムでは、Web サイトに次の特定の詳細を表示する必要があります。

店舗担当者の連絡先情報。

支払い手数料は選択した支払いシステムによって異なり、12% に達する場合があります。

W1

接続は同様の方法で行われます: 登録、個人データの指定、独自のニーズに合わせたパラメータの設定。 手数料 - 3% から。

Qiwiウォレット

基本的な接続手順も簡単です。 簡単な登録を行うと、特定のマネージャーが割り当てられ、技術的な問題についてさらに相談を受けます。 Qiwi ウォレットの仕様では、ユーザーによる標準データの入力に加えて、電話番号の有効性のチェックも必要です。

Qiwi の手数料はすべての送金に対して 1% です。

ヤンデックスのお金

これは最も一般的なタイプの支払いシステムの 1 つであるため、これについて質問がないように言及することにしました。 Yandex.Money システムには個人との協力は含まれません。 さらに、法人であっても、オンライン ストアとの連携は不可能と思われる最低財務制限が存在します。

したがって、ストアが適切な勢いを得るまで、Yandex.Money を接続している間、少し待つ必要があります。 この支払い方法が利用できるかどうかが重要な場合は、オンライン ストアのメインの支払いシステムとして Robokassa を優先してください。 これは、Yandex.Money をサポートする唯一の外部プラットフォームです。

ウェブマネー

WebMoney システムでの自動支払い受付の準備には、もう少し時間がかかります。 まず、個人のパスポートを登録する必要があります。 WebMoney ではロシア郵便を使用して公証された申請書を送信する必要があるため、これには約 1 週間かかる場合があります。

この後、megastock.ru のサイト カタログにオンライン ストアを追加します。 さらに1〜3日かかります。 このシステムの利点は、支払いをテストできることです (実際、すべてが標準的な方法で行われ、お金だけが引き落とされません)。 この利点により、コード内のエラーを事前に検出できます。

クライアントによって転送された資金は、登録時に指定された WebMoney ウォレットに送られます。 手数料は支払いそのものに対してのみ提供されます(クライアントから引き落とされます)。

オンライン決済を接続する価値は何ですか?

ただし、物理的な商品の所有者も、支払いシステムをオンライン ストアに接続することで大きな利益を得ることができます。 後者は、顧客に口座番号を送信する時間を大幅に節約し、人々が必要な金額を入金するのを不必要に待つ必要がなくなります。 同様に、支払いシステムにより、顧客は配送料を節約し、金銭的な煩わしさから解放されます。

私たちがすべての既存の支払いシステムを調査したわけではなく、最も一般的な支払いシステムのみを調査したことは注目に値します。

法人は何をすべきでしょうか?

法人のオンライン ストアにオンライン支払いを接続するには、ほぼ同じ手順を実行する必要があります。 プロセスを整理するにはもう少し時間がかかることに注意してください。 これは、あなたの活動をより徹底的にチェックするための正式な契約を締結する必要があるためです。

オンライン ストアの支払いシステムの選択方法と適切な接続方法について、詳細な回答を受け取りました。 手順は複雑ではありません。主なことは、登録時にデータを慎重に入力することです。そうしないと、サポートで修正することに多くの時間を費やすことになります。

オンライン ストアの機能についてさらに詳しく知りたい場合は、からのいくつかの便利なオンライン コースに注目することをお勧めします。

インターネットで仕事をする人は、電子決済システムなしではいられないでしょう。 結局のところ、稼いだお金をどこかに保管し、何らかの方法で現金で入手する必要があります。 お金を稼ぐための多くの Web サイトでは、お金を引き出すためのいくつかの支払いシステムが提供されており、その支払いシステムから任意の銀行カードに簡単にお金を引き出すことができます。

これらは、世界中の現金以外の支払いのための主要なサービスの 1 つです。 決済システムを使用すると、オンラインでの購入、送金や両替、さまざまなサービスの支払いなどを行うことができます。 言い換えれば、電子決済システムは、さまざまな銀行のインターネット サービスと同じ金融取引を実行します。 したがって、決済システムと銀行は非常に密接な関係にあり、多くの場合相互に協力します。 これにより、決済システムから銀行への送金、および銀行から決済システムへの送金の両方を問題なく行うことができます。 ほぼすべてのサイトでお金を稼ぐために使用されている主要な電子決済システムについてよく理解しておくことをお勧めします。

ロシア国民にとって最高の電子財布。 登録後、この支払いシステムのすべての特典を享受するには、本人確認を行う必要があります。 ほとんどのサービスの料金を支払うだけでなく、多くの製品でさまざまなボーナスや割引を受けられます。 しかし最も重要なことは、次のことができます。 Yandex.Money カードを申請して、ATM から手数料なしで現金を引き出しましょう!「Yandex.Money Cards」セクションでカードを注文できます。

1998 年に設立された最も普及している決済システム。 現在、そのユーザー数は3,000万人を超えています。 この支払いシステムは、お金を稼ぐためにすべてのロシア語のサイトからお金を引き出すのに最適です。 Webmoney 支払いシステムでは、ルーブル (WMR)、グリブナ (WMU)、ドル (WMZ)、ユーロ (WME) など、多くの通貨の電子ウォレットを登録できます。 Webmoney は、顧客の現金口座の安全を確保するためにさまざまなレベルの保護を備えた非常に本格的なシステムです。 したがって、登録プロセスには非常に多くの段階がありますが、それだけの価値はあります。

この決済システムは 4 年前にジョージアで設立され、ロシアと英国に駐在員事務所を置いています。 この短期間で非常に普及し、他の決済システムと比較して多くの大きな利点があります。 Payeer ウォレットへの資金の引き出しは、ロシア語の収益サイトや一部の外国サイトで利用できます。 このシステムに登録するだけで、ルーブル、ドル、ユーロを送金できる電子口座にアクセスできるようになります。 また、Payeer 支払いシステムには独自の内部交換機があり、さまざまな電子ウォレットの通貨を交換できます。

ドルウォレットを開くことができる外国の決済システム。 海外サイトで稼ぐならこのシステムは欠かせないものになるでしょう。 Payza 支払いシステムは、ドルで支払うほぼすべてのサイトで使用されています。 このシステムへの登録は難しくありません。 唯一の障害は、サイトが完全に英語であることですが、ブラウザの翻訳機能を使用してこれを行うことができます。

多くの外国語やロシア語のサイトで収入を得るために使用されているユニバーサル決済システム。 Perfect Money では、ドル、ユーロ、貴金属 (金)、ビットコインの電子口座にアクセスでき、相互に交換できます。 電子決済システムは非常に便利で使いやすく、ロシア語のインターフェースも備えています。 実践に基づいて、この支払いシステムは非常に頻繁に使用する必要があるため、皆さんには Perfect Money に登録することをお勧めします。

2010 年 10 月 29 日午後 5 時 28 分

決済システムの作成方法: パート 1

  • Mail.ru グループ会社のブログ

2009 年の夏、Mail.Ru 社は、自社の開発者が作成した新しい支払いシステムの立ち上げを発表しました (これより前に、MoneyMail 支払いシステムが [email protected] プロジェクトに技術サポートとサービス サポートを提供していたことを思い出してください)。 新しいプロジェクトは、とりわけ、エンターテイメント プロジェクト (ゲーム、マイ ワールドのアプリケーション) から電子商取引プロジェクト (製品、不動産) まで、会社のさまざまなサービスの支払いのための単一の便利で安全なメカニズムをポータル ユーザーに提供することを想定していました。 、郵送物)。

一年が経ちました。 [email protected] は開発を続け、ユーザーと店舗の両方にとって金融商品の数を増やしています。 ユーザーにとって、これはシステム内で送金を行ったり、さまざまなサービスや商品の支払い(多数のゲーム、携帯通信、インターネット、住居、公共サービスの支払いから衣類やチケットの購入まで)、銀行からの入金の機会となります。カードを利用して仮想 Visa カードに引き出します。 支払いの受け入れを自動化したり、ユーザー アカウントに補充したりするためのツールが店舗向けに積極的に開発されており、支払いシステムの多くの機能が API 経由で利用できます。

言及された明白な機能に加えて、あまり頻繁に語られることはありませんが、会社全体にとって同様に重要な技術的な機能もあります。 たとえば、[email protected] に接続されているポータル サービスやストアは、他の支払いシステム (WebMoney、Yandex.Money、その他多数) に電子資金を保管しているユーザーからの支払いを受け入れる機能があります。 システムの同様に重要な部分は SMS 処理です。SMS 処理を利用すると、多くの国からの訪問者は、支払いシステムにアカウントを開設することなく、さまざまなポータル サービスのサービス料金を支払うことができます。

この記事では、当社の決済システムが内部からどのように機能しているか、その信頼性の高い動作を保証するためにどのようなツールを使用しているか、当社が数十の外部システムとどのように連携しているか、どのような問題に遭遇したか、どのように解決したか、そして何を解決したかについての一連のストーリーを公開します。私たちが出した結論。 技術的な記事に加えて、オンライン ストアやソーシャル ネットワーキング アプリケーションの経済的にアクティブなユーザーを拡大するために、当社の支払いシステムを使用する方法についてもお話します。 [email protected] に関する他のトピックに興味がある場合は、質問してください。カバーできるよう努めます。

鋼が焼き戻されたように

2008 年末に、新しいプロジェクトの作業を開始するという任務が私たちの部門に割り当てられました。 当時、支払いシステムは、Mail.Ru が開発、立ち上げ、成功裏に運営してきた種類のプロジェクトではありませんでした。 しかし、問題設定の段階ですでに理解はあった。 開発プロセス中に考慮して実装する必要がありました。

私たちはこれらの要件を、頭文字を取って「MMM」と呼びました(もちろん冗談です)。 どうぞ:

  • Mスケーラビリティ
  • M複数通貨
  • M目新しさ
それぞれについてもう少し詳しく説明します。

スケーラビリティ

プロジェクトが作成者にとって予期せぬ形でスタートし、多数のユーザーを受け入れ、開発者が急激に増加した負荷にどのように迅速に対処するかという問題に直面することがあることは周知の事実です。 memcache でプロジェクトをカバーし、マスター/スレーブ レプリケーションを高める - これらの概念は、プロジェクトの速度が低下しないように何かをしようとした多くの人々にとってよく知られたものです。 残念ながら、これらの単純な方法でも通常はすぐに役に立ちません。システム コンポーネントにキャッシュへのアクセス、書き込みには 1 台のデータベース サーバーを使用し、読み取りには複数のデータベース サーバーを使用するなどの方法を教える必要があります。 適切な水平スケーリング (スケールアウト) を迅速に提供することは、必ずしも簡単な作業ではありません。 そして、私たちは、立ち上げから 1 週間、1 か月、または 1 年後に、この問題を解決するにはプロジェクトを書き直さなければならず、その間ずっとその主要なタスクに対処できなくなるという事実に直面したくありませんでした。 - 電子決済。 したがって、システム設計の段階で、[email protected] の単純なスケーリングの基礎を築く必要がありました。

多通貨

繰り返しになりますが、リンゴではうまく機能するコードが、バナナが供給される倉庫に現れると機能しなくなることがあるのは周知の事実です。 そうですね、このコードではさまざまなエンティティを操作することができません。 私たちがこれまで見てきた多くのケースでは、「リンゴ」のテーブルと同様に、オレンジ用の新しいテーブル セットを作成し、以前に記述されたコードをコピーして置換することで問題が解決されることがよくありました。 $iApplesの上 $iバナナ。 他のケースでは、問題の解決策がより適切でした。追加のフィールドがデータベースに表示され、クラスが既製のクラスから継承され、いくつかの新しいメソッドとプロパティが追加されました(たとえば、リンゴの「皮をむく」属性はバナナとはまったく異なる加工方法で行われます)。 しかし、このソリューションでもコードにかなり大きな変更が必要になる場合がありました。 したがって、多通貨を直ちにシステムに組み込む必要がありました。

マルチディスプレイ

一見すると最も謎に満ちたプロパティですが、その説明は非常に簡単です。 ストアフロントを、メインのエントリ ポイントから独立した設定 (別のドメイン アドレスや独自の通貨から、独自のユーザー認証方法や独自のインターフェイスに至るまで) を操作できるシステム エントリ ポイントと呼びます。 このような新しいストアフロントの立ち上げも非常に簡単です。システム構成ファイルに数行を追加し、必要に応じて新しいユーザー インターフェイス テンプレートを追加するだけです。

もちろん、これらが決済システムの要件のすべてではありませんが、システム アーキテクチャに最も影響を与える要件でした。 新しいプロジェクトは、非常に柔軟でフォールトトレラントである必要がありました。

なんとかできたでしょうか? はい、完全に成功しました。

現在、私たちの見積もりによると、文字通り新しいハードウェアをインストールして構成し、ノードに関する情報をプロジェクト構成に入力するだけで、システムを数百のノードに簡単に拡張できます。

私たちは、システムがどのように動作するかを考えることなく、世界中のすべての通貨を処理できます (国立銀行、ああ!)。 それは根拠のないことではありません - 現在、システムはすでにいくつかの通貨を使用しています (ああ、これらの法的問題!)。

ストアフロントの例として、テスト通貨を使用するストアのデバッグ用サイトのバージョンを挙げることができます。 サイトのモバイル バージョン。独自の利用可能なアクション セットと独自のテンプレートがあります。 もう 1 つの例は、API を使用したスト​​アのショーケースです。この場合、[email protected] でポータル ユーザーを識別する方法とは異なる認証方法が使用されます。 システムのこれらのストアフロントの起動は、実際には、ストアフロントを記述するブロックの構成ファイルと、テンプレートを含むいくつかのフォルダーの出現にすぎないようでした。 まったく同じ方法で、たとえば、[email protected] 支払いシステムやそのような要望を表現するその他のシステムのエンジンの作業を提供できます。

多くの人が、技術的な観点からこれらすべてをどのように実装したかに興味があると思います。 したがって、次の記事では、私たちの決済システムを現在のものにすることを可能にしたツールとテクノロジーについて説明し、プロジェクトの一般的なアーキテクチャにも焦点を当てます。 私たちと居て!

チームマネー@Mail.Ru

タグ:

  • 決済システム
  • Mail.ru
  • どうでしたか
タグを追加する

こんにちは、ハブル! 私たち RBKmoney は、新しい支払い処理を作成しました。 ゼロから。 いや、夢じゃないですか?



RBKmoney Payments の処理全体 (私たちがそう呼んでいるもの) をどのように書いたかを説明します。 負荷や機器の故障にどのように耐えられるようにしたのか、ほぼ線形の水平スケーリングの可能性をどのように思いついたのか。


そして最終的に、私たちが内部にいる人々の快適さを忘れずに、これらすべてをどのようにして始めたか - 私たちの支払いシステムは、主に開発者、つまりそれを作成する人にとって興味深いものになるという考えで作成されました。


この投稿では、特定の技術的な事柄、アプローチ、実装、および原理的に大規模な分散システムの開発経験の両方を共有する一連の記事を開始します。 最初の記事はレビューであり、その中で詳細に、場合によっては非常に詳細に取り上げるマイルストーンの概要を説明します。


免責事項

私たちのブログでの最後の公開から少なくとも 5 年が経過しました。 この間、当社の開発チームは大幅に刷新され、現在は新しい人材が会社の指揮を執っています。


決済システムを作成するときは、さまざまなことを考慮し、多くのソリューションを開発する必要があります。 お金を償却するための数千の同時並行リクエストを処理できる処理から、ユーザーフレンドリーでユーザーフレンドリーなインターフェイスまで。 細かいニュアンスを考慮しなければ、些細なことです。


厳しい現実として、決済処理の背後には、そのようなトラフィックを堂々と受け入れず、場合によっては「1 秒あたり 3 件までのリクエストを送信してください」と要求する決済組織もあります。 そして、そのインターフェイスは、おそらくインターネットで初めて何かにお金を払うことを決めた人々によって見られます。 そして、UX の障害、理解不能、遅延はパニックを引き起こす原因となります。

竜巻の中でも食料品を入れられるショッピングカート


決済処理を作成するための私たちのアプローチは、機会を提供することです。 いつも 支払いを開始します。 私たちの内部で何が起こっているかは関係ありません - サーバーが燃え落ち、管理者がネットワークで混乱し、建物/地区/都市の電気が止められ、うーん...ディーゼルが失われました。 関係ない。 このサービスでは引き続き支払いを開始できます。


このアプローチには見覚えがあると思いませんか?


はい、私たちは Amazon Dynamo Paper で説明されているコンセプトに触発されました。 また、Amazon の担当者は、モニターの向こう側でどんな恐ろしいことが起こっていても、ユーザーが本をカートに入れることができるようにすべてを構築しました。


もちろん、私たちは物理法則に違反しているわけではありませんし、CAP 定理を反証する方法も見つけていません。 支払いがすぐに処理されるという事実はありません。結局のところ、銀行側に問題がある可能性がありますが、サービスはリクエストを作成し、ユーザーはすべてが機能したことを確認します。 はい、そして理想を達成するまでに技術的負債を抱えた未処理のリストがまだ 12 件ありますが、正直に言うと、504 に時々答えることもできます。

窓の外に竜巻があるのでバンカーを覗いてみましょう


支払いゲートウェイを常に利用できるようにする必要がありました。 ピーク負荷が増加したか、何かが低下したか、メンテナンスのために DC に行ったかにかかわらず、エンド ユーザーはこれにまったく気付かないはずです。


この問題は、システム状態が保存される場所を最小限に抑えることで解決されました。明らかに、ステートレス アプリケーションは拡張が容易です。


私たちのアプリケーション自体は Docker コンテナ内で実行され、そこからのログが中央の Elasticsearch ストレージに確実にマージされます。 Service Discovery を通じてお互いを見つけ、内部的に IPv6 経由でデータを送信します。 マクロサービス .


すべてのマイクロサービスが集まって連携し、関連サービスとともにマクロサービスを形成し、最終的にはパブリック API の形で外部から見たときの支払いゲートウェイを提供します。


順序は、マクロサービスの状態全体を記述する SaltStack によって維持されます。


この農場全体については、改めて詳しく説明します。


アプリを使えばもっと簡単です。


ただし、状態をどこかに保存する場合は、ノードの一部の障害によるコストが最小限に抑えられるデータベースに保存する必要があります。 また、データを含むマスター ノードがあってはなりません。 そのため、予測可能な待ち時間でリクエストに応答できます。 彼らはここで夢を見ているのでしょうか? 当時はあまりメンテナンスが必要なかったので、Erlang 開発者に好まれていました。


はい、処理のオンライン部分全体が Erlang で書かれていることをすでに言いましたよね?


おそらく多くの人がすでに推測しているように、私たちにはそのような選択肢はありませんでした。


システムのオンライン部分のすべての状態は Basho Riak に保存されます。 指を壊さずにリアクを調理する方法を説明しますが(間違いなく脳を壊すことになるため)、今は先に進みます。

お金はどこにあるの、リボウスキ?


無限の資金があれば、無限に信頼性の高い処理施設を構築できるかもしれません。 しかし、正確にはそうではありません。 そして彼らは私たちにあまりお金をくれませんでした。 まさに「高品質だけど中国製」レベルのサーバーです。


幸いなことに、これはプラスの効果をもたらしました。 開発者として、512 GB の RAM に対応する 40 個の物理コアを用意するのがやや難しいとわかったら、手を出して小さなアプリケーションを作成する必要があります。 ただし、サーバーは安価なため、好きなだけ導入できます。


私たちの世界でも、サーバーは再起動しても復旧しない傾向があり、最悪のタイミングで電源障害が発生することさえあります。


これらすべての恐怖に目を向けて、私たちはシステムのどの部分であっても、 必然的に突然壊れます。 このアプローチが処理のオンライン部分の開発に何らかの不都合を引き起こしたかどうかを思い出すのは困難です。 おそらくこれは、アーランジストの哲学とその有名な LetItCrash コンセプトと関係があるのでしょうか?


しかし、サーバーを使用すると簡単になります。


私たちはアプリケーションをどこに配置するかを考えました。アプリケーションはたくさんあり、スケーラブルです。 データベースも分散されており、マスターはありません。ノードが燃え尽きても気にせず、すぐにカートにサーバーを積み込んで、DC に来て熊手をラックに置いておくことができます。


しかし、ディスクアレイではそれはできません。 たとえ小規模なディスク ストレージの障害であっても、決済サービスの一部の障害となるため、これを許容することはできません。 ストレージ システムが重複していますか? 非現実的すぎます。


しかし、高価なブランドのディスク アレイを購入する余裕はありません。 単純な美意識からしても、無名の人々が整然と並んでいる棚の隣には目もくれないだろう。 そしてこれらはすべて不当に高価です。


その結果、ディスクアレイは一切使用しないことにしました。 当社のブロック デバイスはすべて、同一の安価なサーバー上の CEPH の下で実行されます。必要に応じてラックに大量に配置できます。


ネットワーク ハードウェアの場合でも、アプローチはそれほど変わりません。 私たちは平均的な人材を採用し、その任務に適した優れた設備を非常に低コストで入手します。 スイッチに障害が発生した場合、2 番目のスイッチが並行して動作し、サーバー上で OSPF が構成されているため、コンバージェンスが保証されます。


このようにして、便利でフォールトトレラントな汎用システム、つまりシンプルで安価なサーバーといくつかのスイッチがラックにいっぱい詰まったシステムが完成しました。 次のスタンド。 等々。


シンプルで便利、そして全体的に非常に信頼性があります。

船内での行動規則を遵守する


私たちはオフィスに来て仕事をしてお金をもらいたいとは決して思っていませんでした。 金銭的な要素は非常に重要ですが、仕事がうまくいったという満足感に代わることはできません。 以前の職場も含めて、私たちはすでに支払いシステムを構築しています。 そして、私たちは何をしたくないのかについての大まかなアイデアを持っていました。 標準的ではあるが実証済みのソリューションは望んでいませんでした。退屈な企業も望んでいませんでした。


そして私たちは作品に最大限の新鮮さをもたらすことに決めました。 決済システムの開発では、新しいソリューションが制限されることが多く、なぜ Docker が必要なのか、Docker なしでいきましょう、と彼らは言います。 そして一般的に言えば。 無担保。 禁止。


私たちは何も禁止するのではなく、逆にすべての新しいことを奨励することに決めました。 これは、SaltStack、Riak クラスター、Consul as a Service Discovery、分散システムでのリクエスト トレースの独自の実装、およびその他の多くの素晴らしいテクノロジを通じて管理された、Docker コンテナ内の膨大なアプリケーションから本番環境でマクロサービスを構築した方法です。

erlang/otp タグを追加

トピックの続き:
りんご

特定のデバイスのメーカー、モデル、および別名に関する情報 (入手可能な場合)。 デザインデバイスの寸法と重量に関する情報をさまざまな形式で表示します。

新しい記事
/
人気のある