いいえ、ピクセル単位ではなく、ユーロ単位です。
いいえ、クレジット カードでは使用できません。
はい、電話で。
製品やサービスを販売する場合、報酬を受け取ることは明らかな要件です。
最近では、オンラインでもクレジット カードが王様です。
クレジット カード、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 <img style={{ width: "120px", height: "120px" }} src={"/api/paybysquare?content=" + encodeURIComponent(JSON.stringify(payModel))} /> }
支払いに説明的なメッセージを追加すると、非常に役立ちます。
以下はクライアント名を正規化する簡単なコードです。
これにより、発音記号が削除され、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 <img style={{ width: "120px", height: "120px" }} src={czQrLink} /> }
残念なことに、国際的またはヨーロッパの QR 標準はまだ存在しません。
したがって、ユーザーの国に基づいて適切な QR コードを表示する必要があります。
チェコ共和国からの支払いを期待している場合は、チェコの QR コードはチェコ クラウン (チェコの通貨 CZK) でのみ機能することに注意してください。
または、チェコ共和国に拠点を置き、スロバキアからの支払いを予定している場合、QR はユーロでのみ機能します。
The code below can help you calculate the right currency amount.
First we get the current reference exchange rate from the central bank.
Then we calculate the euro and czk prices, depending on the product price and currency.
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);
Trying to read badly printed IBANs from invoices or even typing in the horribly long IBANs is super annoying.
That you have to be very careful and check three times, because it is money, makes it even more so.
We make software to make our lives easier, and QR codes for payments fit this goal nicely.
I hope you found the information useful, and if you have some pointers about your national QR code schemes, please shoot them my way.
Happy hacking!
以上がQRで支払いを受けるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。