銀行リンク(pangalink)は、主にエストニアで配布されているクライアント、銀行、店舗の間で売買データを交換する方法です。 この方法は、銀行から店舗への有料サービスの形で提供され、支払いの可能性に加えて、ユーザーを認証する可能性があります(たとえば、教育上の
sais.eeで使用され
ます )。 なぜこれが必要なのですか? クライアントにとって非常に便利なので、自分で判断してください-請求書を支払うプロセス全体:
- クライアントは必要な商品を選択し、最終的に請求書と銀行へのリンクを受け取ります
- リンク内では、支払いと請求書に関するすべてのデータが縫い合わされ、暗号耐性のある署名によって確認されます。 クライアントは、銀行で完全な情報アカウントを支払います。
- 銀行は、すべての支払い情報と署名を使用して、顧客を再びサイトにリダイレクトします。
エストニアにはすでに
arved.eeがあり、ほぼすべての店舗に銀行のアイコンがある理由の1つです。

一般的に、動作するためには次のものが必要です。
- 契約締結後に銀行が発行する一意のID
- 証明書-銀行の公開鍵とその公開鍵と秘密鍵
- データ交換のための実際のプログラム
暗号化
すべてがSSL保護モードで行われるため、銀行へのメッセージを生成するために銀行の公開鍵が必要であり、逆もまた同様です。銀行がストアの公開鍵で生成したメッセージをデコードする秘密鍵が必要です。 したがって、ストアの秘密鍵は次のようになります(
base64エンコーディングのデータの方が簡単です)
-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQC6GI5uaA7hEkgeP98VHL6TSxJwwPI+Mh+rFx KQPCgarT3/nZCS
Gz1r223+gfH/adV4IDvlbYT18VQ4vSspX+QRAidFeZvsfv99Fe wnwNoTL3LwYp/K
r9eW5YCpCEe8Crziks0vf92PNoHgNAL0iVo0Zma1ScDBSPBlQJ oZ1UiwoQIDAP//
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQC6GI5uaA7hEkgeP98VHL6TSxJwwPI+Mh+rFx KQPCgarT3/nZCS
Gz1r223+gfH/adV4IDvlbYT18VQ4vSspX+QRAidFeZvsfv99Fe wnwNoTL3LwYp/K
r9eW5YCpCEe8Crziks0vf92PNoHgNAL0iVo0Zma1ScDBSPBlQJ oZ1UiwoQIDAP//
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQC6GI5uaA7hEkgeP98VHL6TSxJwwPI+Mh+rFx KQPCgarT3/nZCS
Gz1r223+gfH/adV4IDvlbYT18VQ4vSspX+QRAidFeZvsfv99Fe wnwNoTL3LwYp/K
r9eW5YCpCEe8Crziks0vf92PNoHgNAL0iVo0Zma1ScDBSPBlQJ oZ1UiwoQIDAP//
-----END RSA PRIVATE KEY-----
したがって、PRIVATEの代わりに、公開キーには他のデータとPUBLICヘッダーがあります。 当然、秘密鍵は秘密であり、突然点灯した場合、十分なスキルを持っている人なら誰でも商品の架空の支払いに署名することができます。 キーは
OpenSSLを使用して
生成でき
ます 。
PHPでの作業用
phpで記述し、キーを.pemファイルに保存し、POSTメソッドを使用してすべてをフォームで銀行に転送します。 つまり、データを受信する銀行のURLを設定するアクションとして、POSTメソッドを使用してフォームを作成します。 ハンザの場合、これは
www.hanza.net/cgi-bin/hanza/pangalink.jspです。 次に、VK_RETURN型の名前の隠しフィールド(支払い後に戻る必要があるリンク)をフォームに書き込みます。 各銀行には独自の変数と独自の順序があります。 全体は、関数openssl_pkey_get_privateとopenssl_signによって生成される同じ変数VK_MACによって署名されています。商品が支払われた後、あなたのウェブサイトで支払い確認を行う必要があります。 これを行うには、銀行に送られたREQUEST変数を取り出し、同じVK_MACのopenssl_pkey_get_publicとopenssl_verifyを使用して署名を確認します。 銀行の署名が正しく、VK_SERVICE = 1101である場合、すべてが
問題あり
ません 。
ここに 、
zone.eeの例があり
ます -支払いフォームでの
pay.php 、確認での
notify.php 、および設定での
config.php c ++でも同様のことができますが、自然に大きな神経が必要です。