いいえ、ピクセルではなくユーロです。
いいえ、クレジット カードは使用できません。
はい、電話で。
製品やサービスを販売する場合、支払いを受けることは明らかな要件です。
最近では、オンラインでもクレジット カードが王様です。
クレジット カード、Google、Apple Pay を処理できる支払いゲートウェイが豊富にあります。
もちろん有料です。
実店舗では、クレジット カード端末を入手できます。
一部の銀行では、携帯電話を CC 端末に変える Android アプリをはるかに安価で販売できます。
特に 1 日に数回の支払いしか処理しない場合は、検討する価値があります。
これらのオプションは、一般的な消費者シナリオのほぼすべての状況をカバーします。
人がオンラインまたは実店舗にアクセスして、大量の商品を購入したり、散髪をしたりする場所。
しかし、それだけではありません。
これらすべてのケースにおいて、欧州連合における答えは SEPA です。
具体的には、SEPA クレジット転送。
または、より若いですが、はるかに高速な兄弟の SEPA Instant Credit Transfer です。
名前に詳しくなくても、心配しないでください。これは昔と同じ電信送金です。
例えば。あなたは銀行に、自分の口座からお金を引き出して他の人に入金するように言います。
これまでは紙のフォームに記入する必要がありましたが、最近ではモバイル バンキング アプリで数回クリックするだけで済みます。
しかし、現在では国際銀行口座番号である IBAN が標準化されています。
EU 内または世界中のどこにでも送金することが非常に簡単になります。
SEPA インスタントを使用すると、数秒でお金が届きます。
しかし、しかし、IBAN は非常に長いので、ほとんど恐ろしいものです。
そして、人々は何かを入力するのが苦手であることで有名なので、追加のメモのことは忘れて、適切な量を入力できれば満足できます。
これらの問題はすべて QR コードで簡単に解決できます。
顧客は携帯電話でスキャンして金額を確認し、バンキング アプリで [支払い] をクリックできます。
SEPA インスタント クレジット トランスファー スキームに参加する銀行のリストが増えているため、お金が瞬く間に到着する可能性が高くなります。
今後のブログでは、銀行口座への入金を監視する方法について説明します。
たとえば、請求書の生成と送信を自動化します。
スロバキアとチェコ共和国の QR コードを生成する方法を説明しましょう。
このリストをさらに長くしたいので、あなたの国で QR コードがどのように作られているかをご存知の場合は、お知らせください。
スロバキアの銀行は、Pay by Squareと呼ばれる共通基準に合意しました。
オンライン シナリオで使用できる URL スキーマもあります。
例えば。ユーザーがリンクをクリックすると、すべての支払い情報が入力された状態でバンキング アプリが起動します。
残念ながら、これらは相互運用可能ではありません (2024 年には)。
NodeJS で QR コードを生成する方法を説明します。
app.get("/api/paybysquare", mustAuth, async (req, res, next) => { try { const body = req.query.content as string; const model = JSON.parse(body); const content = await generate(model); const qrStream = new PassThrough(); const result = await toFileStream(qrStream, content, { type: 'png', width: 200, errorCorrectionLevel: 'H' } ); qrStream.pipe(res); } catch (ex) { next(ex); } });
生成メソッドは bysquare ライブラリからのものです。
いつものように npm でインストールできます npm i bysquare
ブラウザまたは請求書ドキュメントで使用できる PNG 画像を取得するには、次のようなメソッドを呼び出します。
interface IBySquareModel { IBAN: string; Amount: number; CurrencyCode: string; // must be "EUR", VariableSymbol: string; Payments: number; // must be 1, PaymentOptions: number; // must be 1, BankAccounts: number; // must be 1, PaymentNote?: string; // optional note } const BySquareQR = (payModel: IBySquareModel) => { return }
支払いに説明的なメッセージを追加すると、非常に役立つことがよくあります。
以下はクライアント名を正規化する簡単なコードです。
これにより、発音記号が削除され、Ján Kováč が Jan Kovac になります。
まだ完全に読み取れるはずであり、銀行システムがそれを台無しにしないようにします。
const paymentMessage = customerName?.normalize("NFKD").replace(/[\u0300-\u036f]/g, "").substring(0, 100) || "";
チェコ共和国またはチェコはこれまで(2024年)ユーロに抵抗していましたが、彼らもQRコードスキームを持っています。
そして、彼らは私たちが使用できるロイヤリティフリーのコードジェネレーターさえ持っています。
セキュリティ上の理由から、それでも自分で生成することをお勧めします。
const czQrLink = "https://api.paylibo.com/paylibo/generator/image?iban=" iban "&amount=" czkPrice "¤cy=CZK&vs=" vsym "&message=" message; const CzQrImage = (czQrLink: string) => { return }
残念ながら、国際またはヨーロッパの QR 標準はまだ存在しません。
したがって、ユーザーの国に基づいて適切な QR コードを表示する必要があります。
チェコ共和国からの支払いを予定している場合は、チェコの QR コードはチェコのクラウン (チェコの通貨 CZK) でのみ機能することに注意してください。
または、チェコ共和国に拠点を置き、スロバキアからの支払いを予定している場合、QR はユーロでのみ機能します。
以下のコードは、正しい通貨金額を計算するのに役立ちます。
まず、中央銀行から現在の基準為替レートを取得します。
次に、商品価格と通貨に応じて、ユーロとチェココルナの価格を計算します。
const getExchangeRate = async () => { const now = new Date(); const dt = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1).toISOString().substring(0, 10); const url = "https://nbs.sk/export/sk/exchange-rate/" dt "/xml"; const dat = { url: url } const opts = { headers: { 'Content-Type': 'application/json' }, method: "POST", body: JSON.stringify(dat) } const resp = await fetch("/api/httpfetch", opts); const xml = await resp.text(); const parser = new DOMParser(); const xmlDoc = parser.parseFromString(xml, "text/xml"); const node = xmlDoc.querySelector("Cube [currency='CZK']"); if (node) { const attr = node.getAttribute("rate"); if (attr) { const num = attr.replace(/\s/, "").replace(",", "."); return num; } } return undefined; } // basePrice is the amount to be paid, for the products or services // currencyCode is the currency the products or services are sold in. const czkRate = await getExchangeRate(); const eurPrice = currencyCode === "EUR" ? basePrice : (Math.ceil(basePrice / czkRate * 100) / 100).toFixed(2); const czkPrice = currencyCode === "CZK" ? basePrice : (Math.ceil(basePrice * czkRate * 100) / 100).toFixed(2);
請求書から印刷された IBAN を読み取ろうとしたり、恐ろしく長い IBAN を入力したりするのは非常に面倒です。
お金ですから、細心の注意を払って3回確認しなければならないと考えると、なおさらです。
私たちは生活を楽にするソフトウェアを作っており、支払い用の QR コードはこの目標にぴったりです。
この情報がお役に立てば幸いです。各国の QR コード スキームに関するヒントをお持ちの場合は、ぜひ私なりの方法でお知らせください。
ハッキングを楽しんでください!
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3