This commit is contained in:
Kukks 2023-11-08 08:41:47 +01:00
parent 333184b932
commit 80be645609
No known key found for this signature in database
GPG Key ID: 8E5530D9D1C93097
5 changed files with 81 additions and 76 deletions

View File

@ -83,6 +83,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Smartstore.Data.PostgreSql"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Smartstore.Data.Sqlite", "src\Smartstore.Data\Smartstore.Data.Sqlite\Smartstore.Data.Sqlite.csproj", "{32683DB7-C20D-4ABD-BE90-569168B2A68F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Smartstore.BTCPayServer", "src\Smartstore.Modules\Smartstore.BTCPayServer\Smartstore.BTCPayServer.csproj", "{5580D90E-3E5F-4D4A-8DFC-DE7969FBB9C3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -270,6 +272,12 @@ Global
{32683DB7-C20D-4ABD-BE90-569168B2A68F}.DebugNoRazorCompile|Any CPU.Build.0 = DebugNoRazorCompile|Any CPU
{32683DB7-C20D-4ABD-BE90-569168B2A68F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{32683DB7-C20D-4ABD-BE90-569168B2A68F}.Release|Any CPU.Build.0 = Release|Any CPU
{5580D90E-3E5F-4D4A-8DFC-DE7969FBB9C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5580D90E-3E5F-4D4A-8DFC-DE7969FBB9C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5580D90E-3E5F-4D4A-8DFC-DE7969FBB9C3}.DebugNoRazorCompile|Any CPU.ActiveCfg = DebugNoRazorCompile|Any CPU
{5580D90E-3E5F-4D4A-8DFC-DE7969FBB9C3}.DebugNoRazorCompile|Any CPU.Build.0 = DebugNoRazorCompile|Any CPU
{5580D90E-3E5F-4D4A-8DFC-DE7969FBB9C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5580D90E-3E5F-4D4A-8DFC-DE7969FBB9C3}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -301,6 +309,7 @@ Global
{0C26B088-A8F6-42E8-AB8D-D9D297FDD72C} = {E5C1AA43-6B44-4EFA-8DE9-6070EE007CE3}
{1A016177-D0EA-49AD-9BD5-BAD99D9D08F9} = {82A38DDA-C944-4C15-AF43-86732F8ED15A}
{32683DB7-C20D-4ABD-BE90-569168B2A68F} = {82A38DDA-C944-4C15-AF43-86732F8ED15A}
{5580D90E-3E5F-4D4A-8DFC-DE7969FBB9C3} = {E5C1AA43-6B44-4EFA-8DE9-6070EE007CE3}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {A0A0B995-5D0B-458E-BCC0-1071B76949D1}

View File

@ -18,7 +18,7 @@ using Smartstore.Core.Checkout.Payment;
namespace Smartstore.BTCPayServer.Controllers
{
[Area("Admin")]
[Route("[area]/btcpay/{action=index}/{id?}")]
[Route("[area]/btcpayserver/{action=index}/{id?}")]
public class BtcPayAdminController : ModuleController
{
@ -74,10 +74,10 @@ namespace Smartstore.BTCPayServer.Controllers
sUrl = model.BtcPayUrl + (model.BtcPayUrl.EndsWith("/") ? "" : "/");
sUrl += $"api-keys/authorize?applicationName={myStore.Name.Replace(" ", "")}&applicationIdentifier=SmartStore{myStore.Id}&selectiveStores=true"
+ $"&redirect={myStore.Url}admin/btcpay/getautomaticapikeyconfig&permissions=btcpay.store.canmodifystoresettings";
+ $"&redirect={myStore.Url}admin/btcpayserver/getautomaticapikeyconfig&permissions=btcpay.store.canmodifystoresettings";
}
ViewBag.UrlBtcApiKey = sUrl;
ViewBag.UrlCreateWebHook = myStore.Url + "admin/btcpay/createwebhook/";
ViewBag.UrlCreateWebHook = myStore.Url + "admin/btcpayserver/createwebhook/";
return View(model);
}
@ -90,7 +90,7 @@ namespace Smartstore.BTCPayServer.Controllers
}
var myStore = _services.StoreContext.CurrentStore;
var adminUrl = myStore.Url + "admin/btcpay/getautomaticapikeyconfig";
var adminUrl = myStore.Url + "admin/btcpayserver/getautomaticapikeyconfig";
var adminUrlParams = new Dictionary<string, string>();
adminUrlParams.Add("ssid", myStore.Id.ToString());
adminUrlParams.Add("btcpayuri", btcpayUri.ToString());

View File

@ -1,34 +1,32 @@
<Language Name="Deutsch" IsDefault="false" IsRightToLeft="false">
<LocaleResource Name="Plugins.FriendlyName.SmartStore.BTCPayServer" AppendRootKey="false">
<Value>Bezahlen Sie mit Bitcoin</Value>
</LocaleResource>
<LocaleResource Name="Plugins.Description.SmartStore.BTCPayServer" AppendRootKey="false">
<Value>Akzeptieren Sie Bitcoin in Ihrem SmartStore-Shop mit BTCPay Server</Value>
</LocaleResource>
<LocaleResource Name="Plugins.FriendlyName.SmartStore.BTCPayServer" AppendRootKey="false">
<Value>Bezahlen Sie mit Bitcoin</Value>
</LocaleResource>
<LocaleResource Name="Plugins.Description.SmartStore.BTCPayServer" AppendRootKey="false">
<Value>Akzeptieren Sie Bitcoin in Ihrem SmartStore-Shop mit BTCPay Server</Value>
</LocaleResource>
<!-- (Provider name) will be displayed in frontend on payment selection page and in backend on payment configuration list -->
<LocaleResource Name="Plugins.FriendlyName.Payments.BTCPayServer" AppendRootKey="false">
<Value>BTCPay Server</Value>
</LocaleResource>
<!-- (Provider description) will be displayed in frontend on payment selection page and in backend on payment configuration list -->
<LocaleResource Name="Plugins.Description.Payments.BTCPayServer" AppendRootKey="false">
<Value>Akzeptieren Sie Bitcoin in Ihrem SmartStore-Shop mit BtcPay Server.</Value>
</LocaleResource>
<!-- (Provider name) will be displayed in frontend on payment selection page and in backend on payment configuration list -->
<LocaleResource Name="Plugins.FriendlyName.Payments.BTCPayServer" AppendRootKey="false">
<Value>BTCPay Server</Value>
</LocaleResource>
<!-- (Provider description) will be displayed in frontend on payment selection page and in backend on payment configuration list -->
<LocaleResource Name="Plugins.Description.Payments.BTCPayServer" AppendRootKey="false">
<Value>Akzeptieren Sie Bitcoin in Ihrem SmartStore-Shop mit BtcPay Server.</Value>
</LocaleResource>
<LocaleResource Name="Plugins.SmartStore.BTCPayServer" AppendRootKey="false">
<Children>
<LocaleResource Name="AdminInstruction">
<Value>
<![CDATA[
<LocaleResource Name="Plugins.SmartStore.BTCPayServer" AppendRootKey="false">
<Children>
<LocaleResource Name="AdminInstruction">
<Value>
<![CDATA[
<div class="mb-1"><a href="https://github.com/Nisaba/btcpay-smartstore-plugin" target="_blank">BTCPay Plugin für SmartStore</a></div>
<div class="mb-1">Die Konfiguration des Plugins kann automatisch oder manuell erfolgen.</div>
<div class="mb-1"><br/><b>Automatische Konfiguration:</b></div>
<ul>
<li>Geben Sie den "BTCPay Url"-Parameter ein und speichern Sie ihn.</li>
<li>Klicken Sie auf den Link "API-Key automatisch erstellen", um zur Seite zur Erstellung des Schlüssels auf Ihrem BTCPay-Server weitergeleitet zu werden.</li>
<li>Die Parameter "API-Key" und "BTCPay Store ID" werden automatisch ausgefüllt. Speichern Sie sie.</li>
<li>Klicken Sie auf den Link "WebHook automatisch erstellen".</li>
<li>Das Feld "WebHook Secret" wird automatisch ausgefüllt. Speichern Sie es.</li>
<li>Geben Sie den "BTCPay Url"-Parameter ein und speichern .</li>
<li>Klicken Sie auf "Configure automatically", um zur Seite zur Erstellung des Schlüssels auf Ihrem BTCPay-Server weitergeleitet zu werden.</li>
<li>Die Parameter "API-Key", "BTCPay Store ID" und "WebHook Secret" werden automatisch ausgefüllt. Speichern Sie sie.</li>
</ul>
<div class="mb-1"><br/><b>Manuelle Konfiguration:</b></div>
<ul>
@ -41,53 +39,53 @@
<li>Um den BTCPay WebHook zu erstellen, <a href="https://docs.btcpayserver.org/VirtueMart/#23-create-a-webhook-on-btcpay-server" target="_blank">lesen Sie dies</a>. (verwenden Sie den standardmäßig von BTCPay generierten Geheimcode)</li>
</ul>
]]>
</Value>
</LocaleResource>
</Value>
</LocaleResource>
<LocaleResource Name="WebHookNote">
<Value>
<![CDATA[
<LocaleResource Name="WebHookNote">
<Value>
<![CDATA[
Hinweis: Beim Testen des Webhooks von BTCPay sollte ein HTTP 422-Fehler angezeigt werden.<br/>
Dies liegt daran, dass BTCPay leere Daten sendet, während das SmartStore-Plugin echte Daten erwartet.<br/>
Dieser Fehler weist daher darauf hin, dass der Webhook tatsächlich über BTCPay zugänglich ist.<br/>
Bei einer echten Transaktion können wir daher von einer korrekten Abwicklung ausgehen.
]]>
</Value>
</LocaleResource>
</Value>
</LocaleResource>
<LocaleResource Name="WebHookInfo">
<LocaleResource Name="WebHookInfo">
<Value>Hier ist die URL, die für die WebHook-Erstellung in BTCPay festgelegt werden muss: </Value>
</LocaleResource>
<LocaleResource Name="BtcPayUrl">
<Value>BTCPay-URL</Value>
</LocaleResource>
<LocaleResource Name="BtcPayUrl.Hint">
<Value>Die URL Ihrer BTCPay-Instanz</Value>
</LocaleResource>
<LocaleResource Name="ApiKey">
<Value>API-Schlüssel</Value>
</LocaleResource>
<LocaleResource Name="ApiKey.Hint">
<Value>Der in Ihrer BTCPay-Instanz generierte API-Schlüsselwert</Value>
</LocaleResource>
<Value>BTCPay-URL</Value>
</LocaleResource>
<LocaleResource Name="BtcPayUrl.Hint">
<Value>Die URL Ihrer BTCPay-Instanz</Value>
</LocaleResource>
<LocaleResource Name="ApiKey">
<Value>API-Schlüssel</Value>
</LocaleResource>
<LocaleResource Name="ApiKey.Hint">
<Value>Der in Ihrer BTCPay-Instanz generierte API-Schlüsselwert</Value>
</LocaleResource>
<LocaleResource Name="CreateApiKey">
<Value>API-Schlüssel automatisch erstellen</Value>
</LocaleResource>
<LocaleResource Name="BtcPayStoreID">
<Value>BTCPay Store-ID</Value>
</LocaleResource>
<LocaleResource Name="BtcPayStoreID.Hint">
<Value>die BTCPay Store ID</Value>
</LocaleResource>
<LocaleResource Name="WebHookSecret">
<Value>WebHook-Geheimnis</Value>
</LocaleResource>
<LocaleResource Name="WebHookSecret.Hint">
<Value>Der in Ihrer BTCPay-Instanz generierte WebHook-Secret-Wert</Value>
</LocaleResource>
<Value>BTCPay Store-ID</Value>
</LocaleResource>
<LocaleResource Name="BtcPayStoreID.Hint">
<Value>die BTCPay Store ID</Value>
</LocaleResource>
<LocaleResource Name="WebHookSecret">
<Value>WebHook-Geheimnis</Value>
</LocaleResource>
<LocaleResource Name="WebHookSecret.Hint">
<Value>Der in Ihrer BTCPay-Instanz generierte WebHook-Secret-Wert</Value>
</LocaleResource>
<LocaleResource Name="CreateWebhook">
<Value>Webhook automatisch erstellen</Value>
</LocaleResource>
@ -95,17 +93,17 @@ Bei einer echten Transaktion können wir daher von einer korrekten Abwicklung au
<Value>WebHook-Url</Value>
</LocaleResource>
<LocaleResource Name="NoteRefund">
<Value>Es wurde eine Rückerstattung vorgenommen. Bitte folgen Sie diesem Link:</Value>
</LocaleResource>
<Value>Es wurde eine Rückerstattung vorgenommen. Bitte folgen Sie diesem Link:</Value>
</LocaleResource>
<LocaleResource Name="PaymentInfo">
<Value>Nach Abschluss Ihrer Bestellung werden Sie an unseren BTCPay Server weitergeleitet, wo Sie die Zahlung für Ihre Bestellung tätigen können..</Value>
</LocaleResource>
<LocaleResource Name="PaymentInfo">
<Value>Nach Abschluss Ihrer Bestellung werden Sie an unseren BTCPay Server weitergeleitet, wo Sie die Zahlung für Ihre Bestellung tätigen können..</Value>
</LocaleResource>
<LocaleResource Name="PaymentError">
<Value>Fehler bei der Verarbeitung der Zahlung. Bitte versuchen Sie es erneut und kontaktieren Sie uns, wenn das Problem weiterhin besteht.</Value>
</LocaleResource>
</Children>
</LocaleResource>
</Children>
</LocaleResource>
</Language>

View File

@ -60,9 +60,9 @@
<div class="mb-1">The plugin configuration can be done automatically or manually.</div>
<div class="mb-1"><br/><b>Automatic Configuration:</b></div>
<ul>
<li>Enter the "BTCPay Url" parameter and save.</li>
<li>Click on the "Create API Key Automatically" link to be redirected to the key creation page on your BTCPay server.</li>
<li>The "API Key" and "BTCPay Store ID" parameters will be automatically filled. Save.</li>
<li>Enter the "BTCPay Url" parameter.</li>
<li>Click on the "Configure automatically" button to be redirected to the key creation page on your BTCPay server.</li>
<li>The "API Key", "BTCPay Store ID" and "WebHook Secret" parameters will be automatically filled. Save.</li>
</ul>
<div class="mb-1"><br/><b>Manual Configuration:</b></div>
<ul>
@ -96,7 +96,7 @@ With a real transaction, you can therefore expect correct operation.
<LocaleResource Name="PaymentInfo">
<Value>After completing the order you will be redirected to the merchant BTCPay instance, where you can make the Bitcoin payment for your order.</Value>
</LocaleResource>
<LocaleResource Name="PaymentError">
<Value>Error processing the payment. Please try again and contact us if the problem persists.</Value>
</LocaleResource>

View File

@ -24,11 +24,9 @@
<div class="mb-1">La configuration du plugin peut se faire de manière automatique ou manuelle.</div>
<div class="mb-1"><br/><b>Configuration automatique :</b></div>
<ul>
<li>Renseignez le paramètre "BTCPay Url" et sauvegardez</li>
<li>Cliquez sur le lien "Créer la clé API automatiquement" pour être redirigé vers la page de création de la clé sur votre serveur BTCPay Server</li>
<li>Les paramètres "Clé API" et "BTCPay Store ID" sont alors automatiquement renseignés. Sauvegardez</li>
<li>Cliquez sur le lien "Créer le WebHook automatiquement"</li>
<li>Le champ "WebHook Secret" est alors automatiquement renseigné. Sauvegardez</li>
<li>Renseignez le paramètre "BTCPay Url"</li>
<li>Cliquez sur le bouton "Configure automatically" pour être redirigé vers la page de création de la clé sur votre serveur BTCPay Server</li>
<li>Les paramètres "Clé API", "BTCPay Store ID" et "WebHook Secret" sont alors automatiquement renseignés. Sauvegardez</li>
</ul>
<div class="mb-1"><br/><b>Configuration manuelle :</b></div>
<ul>
@ -55,7 +53,7 @@ C'est parce que BTCPay envoie des données vides alors que le plugin SmartStore
Cette erreur indique donc que le webhook est bien accessible depuis BTCPay.<br/>
Avec une vraie transaction, on peut donc s'attendre à un fonctionnement correct.
]]>
</Value>
</Value>
</LocaleResource>
<LocaleResource Name="NoteRefund">