Bhengu.Finance.Payments.QrEncoding
2.1.0
dotnet add package Bhengu.Finance.Payments.QrEncoding --version 2.1.0
NuGet\Install-Package Bhengu.Finance.Payments.QrEncoding -Version 2.1.0
<PackageReference Include="Bhengu.Finance.Payments.QrEncoding" Version="2.1.0" />
<PackageVersion Include="Bhengu.Finance.Payments.QrEncoding" Version="2.1.0" />
<PackageReference Include="Bhengu.Finance.Payments.QrEncoding" />
paket add Bhengu.Finance.Payments.QrEncoding --version 2.1.0
#r "nuget: Bhengu.Finance.Payments.QrEncoding, 2.1.0"
#:package Bhengu.Finance.Payments.QrEncoding@2.1.0
#addin nuget:?package=Bhengu.Finance.Payments.QrEncoding&version=2.1.0
#tool nuget:?package=Bhengu.Finance.Payments.QrEncoding&version=2.1.0
Bhengu.Finance.Payments.QrEncoding
A small, dependency-light wrapper over QRCoder (Apache 2.0)
that turns the payload-format QrCode returned by the Bhengu Payments SDK's QR providers into
renderable PNG bytes or SVG markup.
Why this package exists
The QR providers in Bhengu.Finance.Payments.* (PayShap, MPesa, Wave, Alipay, WeChat Pay, etc.)
return a QrCode whose Format = QrFormat.Payload and whose Payload is the raw EMVCo / BIP21
string. That's deliberately tiny and image-library-free — most callers only need to ship the
string to a mobile client that already draws the QR itself.
When a caller does need a PNG or SVG (printing a static QR, embedding in a web page, etc.) they add this package and call one method. No need to take a direct QRCoder dependency or pin its version against the rest of the SDK.
Install
dotnet add package Bhengu.Finance.Payments.QrEncoding
Usage
Round-trip from a provider
using Bhengu.Finance.Payments.Core.Interfaces;
using Bhengu.Finance.Payments.Core.Models.QrCode;
using Bhengu.Finance.Payments.QrEncoding;
QrCode payloadQr = await qrProvider.GenerateAsync(new QrCodeRequest
{
Amount = 50m,
Currency = "ZAR",
Format = QrFormat.Payload
});
// Upgrade to PNG without re-hitting the provider:
QrCode pngQr = BhenguQrEncoder.UpgradeToImage(payloadQr, QrFormat.Png);
File.WriteAllBytes("payshap.png", pngQr.ImageBytes!);
Direct encoding
byte[] png = BhenguQrEncoder.EncodePng("00020101021226...EMVCo...payload...");
string svg = BhenguQrEncoder.EncodeSvg("00020101021226...EMVCo...payload...");
Notes
- Multi-targets
net8.0andnet10.0. - ECC level is
Q(Quartile, ~25% error correction) which is a good default for printed QRs. pixelsPerModuledefault is 10. Raise for larger images, lower for tighter ones.UpgradeToImagethrowsArgumentExceptionif the sourceQrCode.Formatisn'tPayload. Re-fetch from the provider withFormat=Payloadbefore upgrading.
License
Apache 2.0 — same as the rest of the Bhengu Payments SDK.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Bhengu.Finance.Payments.Core (>= 2.1.0)
- QRCoder (>= 1.6.0)
-
net8.0
- Bhengu.Finance.Payments.Core (>= 2.1.0)
- QRCoder (>= 1.6.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Bhengu.Finance.Payments.QrEncoding:
| Package | Downloads |
|---|---|
|
Bhengu.Finance.Payments.All
All Bhengu payment providers bundled together — install one package to get every provider in the Bhengu.Finance.Payments family. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.1.0 | 166 | 6/5/2026 |
| 2.0.0 | 130 | 6/5/2026 |
| 2.0.0-preview.8 | 75 | 6/5/2026 |
| 2.0.0-preview.7 | 79 | 6/4/2026 |
| 2.0.0-preview.6 | 80 | 6/4/2026 |
| 2.0.0-preview.5 | 76 | 6/4/2026 |