mirror of https://github.com/EasyAbp/EShop.git
119 changed files with 0 additions and 2882 deletions
@ -1 +0,0 @@ |
|||||
**/wwwroot/libs/** linguist-vendored |
|
||||
@ -1,258 +0,0 @@ |
|||||
## Ignore Visual Studio temporary files, build results, and |
|
||||
## files generated by popular Visual Studio add-ons. |
|
||||
|
|
||||
# User-specific files |
|
||||
*.suo |
|
||||
*.user |
|
||||
*.userosscache |
|
||||
*.sln.docstates |
|
||||
|
|
||||
# User-specific files (MonoDevelop/Xamarin Studio) |
|
||||
*.userprefs |
|
||||
|
|
||||
# Build results |
|
||||
[Dd]ebug/ |
|
||||
[Dd]ebugPublic/ |
|
||||
[Rr]elease/ |
|
||||
[Rr]eleases/ |
|
||||
x64/ |
|
||||
x86/ |
|
||||
bld/ |
|
||||
[Bb]in/ |
|
||||
[Oo]bj/ |
|
||||
[Ll]og/ |
|
||||
|
|
||||
# Visual Studio 2015 cache/options directory |
|
||||
.vs/ |
|
||||
# Uncomment if you have tasks that create the project's static files in wwwroot |
|
||||
#wwwroot/ |
|
||||
|
|
||||
# MSTest test Results |
|
||||
[Tt]est[Rr]esult*/ |
|
||||
[Bb]uild[Ll]og.* |
|
||||
|
|
||||
# NUNIT |
|
||||
*.VisualState.xml |
|
||||
TestResult.xml |
|
||||
|
|
||||
# Build Results of an ATL Project |
|
||||
[Dd]ebugPS/ |
|
||||
[Rr]eleasePS/ |
|
||||
dlldata.c |
|
||||
|
|
||||
# DNX |
|
||||
project.lock.json |
|
||||
artifacts/ |
|
||||
|
|
||||
*_i.c |
|
||||
*_p.c |
|
||||
*_i.h |
|
||||
*.ilk |
|
||||
*.meta |
|
||||
*.obj |
|
||||
*.pch |
|
||||
*.pdb |
|
||||
*.pgc |
|
||||
*.pgd |
|
||||
*.rsp |
|
||||
*.sbr |
|
||||
*.tlb |
|
||||
*.tli |
|
||||
*.tlh |
|
||||
*.tmp |
|
||||
*.tmp_proj |
|
||||
*.log |
|
||||
*.vspscc |
|
||||
*.vssscc |
|
||||
.builds |
|
||||
*.pidb |
|
||||
*.svclog |
|
||||
*.scc |
|
||||
|
|
||||
# Chutzpah Test files |
|
||||
_Chutzpah* |
|
||||
|
|
||||
# Visual C++ cache files |
|
||||
ipch/ |
|
||||
*.aps |
|
||||
*.ncb |
|
||||
*.opendb |
|
||||
*.opensdf |
|
||||
*.sdf |
|
||||
*.cachefile |
|
||||
*.VC.db |
|
||||
*.VC.VC.opendb |
|
||||
|
|
||||
# Visual Studio profiler |
|
||||
*.psess |
|
||||
*.vsp |
|
||||
*.vspx |
|
||||
*.sap |
|
||||
|
|
||||
# TFS 2012 Local Workspace |
|
||||
$tf/ |
|
||||
|
|
||||
# Guidance Automation Toolkit |
|
||||
*.gpState |
|
||||
|
|
||||
# ReSharper is a .NET coding add-in |
|
||||
_ReSharper*/ |
|
||||
*.[Rr]e[Ss]harper |
|
||||
*.DotSettings.user |
|
||||
|
|
||||
# JustCode is a .NET coding add-in |
|
||||
.JustCode |
|
||||
|
|
||||
# TeamCity is a build add-in |
|
||||
_TeamCity* |
|
||||
|
|
||||
# DotCover is a Code Coverage Tool |
|
||||
*.dotCover |
|
||||
|
|
||||
# NCrunch |
|
||||
_NCrunch_* |
|
||||
.*crunch*.local.xml |
|
||||
nCrunchTemp_* |
|
||||
|
|
||||
# MightyMoose |
|
||||
*.mm.* |
|
||||
AutoTest.Net/ |
|
||||
|
|
||||
# Web workbench (sass) |
|
||||
.sass-cache/ |
|
||||
|
|
||||
# Installshield output folder |
|
||||
[Ee]xpress/ |
|
||||
|
|
||||
# DocProject is a documentation generator add-in |
|
||||
DocProject/buildhelp/ |
|
||||
DocProject/Help/*.HxT |
|
||||
DocProject/Help/*.HxC |
|
||||
DocProject/Help/*.hhc |
|
||||
DocProject/Help/*.hhk |
|
||||
DocProject/Help/*.hhp |
|
||||
DocProject/Help/Html2 |
|
||||
DocProject/Help/html |
|
||||
|
|
||||
# Click-Once directory |
|
||||
publish/ |
|
||||
|
|
||||
# Publish Web Output |
|
||||
*.[Pp]ublish.xml |
|
||||
*.azurePubxml |
|
||||
# TODO: Comment the next line if you want to checkin your web deploy settings |
|
||||
# but database connection strings (with potential passwords) will be unencrypted |
|
||||
*.pubxml |
|
||||
*.publishproj |
|
||||
|
|
||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to |
|
||||
# checkin your Azure Web App publish settings, but sensitive information contained |
|
||||
# in these scripts will be unencrypted |
|
||||
PublishScripts/ |
|
||||
|
|
||||
# NuGet Packages |
|
||||
*.nupkg |
|
||||
# The packages folder can be ignored because of Package Restore |
|
||||
**/packages/* |
|
||||
# except build/, which is used as an MSBuild target. |
|
||||
!**/packages/build/ |
|
||||
# Uncomment if necessary however generally it will be regenerated when needed |
|
||||
#!**/packages/repositories.config |
|
||||
# NuGet v3's project.json files produces more ignoreable files |
|
||||
*.nuget.props |
|
||||
*.nuget.targets |
|
||||
|
|
||||
# Microsoft Azure Build Output |
|
||||
csx/ |
|
||||
*.build.csdef |
|
||||
|
|
||||
# Microsoft Azure Emulator |
|
||||
ecf/ |
|
||||
rcf/ |
|
||||
|
|
||||
# Windows Store app package directories and files |
|
||||
AppPackages/ |
|
||||
BundleArtifacts/ |
|
||||
Package.StoreAssociation.xml |
|
||||
_pkginfo.txt |
|
||||
|
|
||||
# Visual Studio cache files |
|
||||
# files ending in .cache can be ignored |
|
||||
*.[Cc]ache |
|
||||
# but keep track of directories ending in .cache |
|
||||
!*.[Cc]ache/ |
|
||||
|
|
||||
# Others |
|
||||
ClientBin/ |
|
||||
~$* |
|
||||
*~ |
|
||||
*.dbmdl |
|
||||
*.dbproj.schemaview |
|
||||
*.pfx |
|
||||
*.publishsettings |
|
||||
node_modules/ |
|
||||
orleans.codegen.cs |
|
||||
|
|
||||
# Since there are multiple workflows, uncomment next line to ignore bower_components |
|
||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) |
|
||||
#bower_components/ |
|
||||
|
|
||||
# RIA/Silverlight projects |
|
||||
Generated_Code/ |
|
||||
|
|
||||
# Backup & report files from converting an old project file |
|
||||
# to a newer Visual Studio version. Backup files are not needed, |
|
||||
# because we have git ;-) |
|
||||
_UpgradeReport_Files/ |
|
||||
Backup*/ |
|
||||
UpgradeLog*.XML |
|
||||
UpgradeLog*.htm |
|
||||
|
|
||||
# SQL Server files |
|
||||
*.mdf |
|
||||
*.ldf |
|
||||
|
|
||||
# Business Intelligence projects |
|
||||
*.rdl.data |
|
||||
*.bim.layout |
|
||||
*.bim_*.settings |
|
||||
|
|
||||
# Microsoft Fakes |
|
||||
FakesAssemblies/ |
|
||||
|
|
||||
# GhostDoc plugin setting file |
|
||||
*.GhostDoc.xml |
|
||||
|
|
||||
# Node.js Tools for Visual Studio |
|
||||
.ntvs_analysis.dat |
|
||||
|
|
||||
# Visual Studio 6 build log |
|
||||
*.plg |
|
||||
|
|
||||
# Visual Studio 6 workspace options file |
|
||||
*.opt |
|
||||
|
|
||||
# Visual Studio LightSwitch build output |
|
||||
**/*.HTMLClient/GeneratedArtifacts |
|
||||
**/*.DesktopClient/GeneratedArtifacts |
|
||||
**/*.DesktopClient/ModelManifest.xml |
|
||||
**/*.Server/GeneratedArtifacts |
|
||||
**/*.Server/ModelManifest.xml |
|
||||
_Pvt_Extensions |
|
||||
|
|
||||
# Paket dependency manager |
|
||||
.paket/paket.exe |
|
||||
paket-files/ |
|
||||
|
|
||||
# FAKE - F# Make |
|
||||
.fake/ |
|
||||
|
|
||||
# JetBrains Rider |
|
||||
.idea/ |
|
||||
*.sln.iml |
|
||||
|
|
||||
# WeChatPay |
|
||||
host/EasyAbp.EShop.Payments.WeChatPay.IdentityServer/Logs/logs.txt |
|
||||
host/EasyAbp.EShop.Payments.WeChatPay.HttpApi.Host/Logs/logs.txt |
|
||||
host/EasyAbp.EShop.Payments.WeChatPay.Web.Host/Logs/logs.txt |
|
||||
host/EasyAbp.EShop.Payments.WeChatPay.Web.Unified/Logs/logs.txt |
|
||||
@ -1,167 +0,0 @@ |
|||||
|
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00 |
|
||||
# Visual Studio Version 16 |
|
||||
VisualStudioVersion = 16.0.29001.49 |
|
||||
MinimumVisualStudioVersion = 10.0.40219.1 |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.Domain.Shared", "src\EasyAbp.EShop.Payments.WeChatPay.Domain.Shared\EasyAbp.EShop.Payments.WeChatPay.Domain.Shared.csproj", "{D64C1577-4929-4B60-939E-96DE1534891A}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.Domain", "src\EasyAbp.EShop.Payments.WeChatPay.Domain\EasyAbp.EShop.Payments.WeChatPay.Domain.csproj", "{F2840BC7-0188-4606-9126-DADD0F5ABF7A}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.Application.Contracts", "src\EasyAbp.EShop.Payments.WeChatPay.Application.Contracts\EasyAbp.EShop.Payments.WeChatPay.Application.Contracts.csproj", "{BD65D04F-08D5-40C1-8C24-77CA0BACB877}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.Application", "src\EasyAbp.EShop.Payments.WeChatPay.Application\EasyAbp.EShop.Payments.WeChatPay.Application.csproj", "{78040F9E-3501-4A40-82DF-00A597710F35}" |
|
||||
EndProject |
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{649A3FFA-182F-4E56-9717-E6A9A2BEC545}" |
|
||||
EndProject |
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}" |
|
||||
EndProject |
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{E400416D-2895-4512-9D17-90681EEC7E0A}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore", "src\EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore\EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore.csproj", "{0CE86223-D31D-4315-A1F5-87BA3EE1B844}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.MongoDB", "src\EasyAbp.EShop.Payments.WeChatPay.MongoDB\EasyAbp.EShop.Payments.WeChatPay.MongoDB.csproj", "{F1C58097-4C08-4D88-8976-6B3389391481}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.HttpApi", "src\EasyAbp.EShop.Payments.WeChatPay.HttpApi\EasyAbp.EShop.Payments.WeChatPay.HttpApi.csproj", "{077AA5F8-8B61-420C-A6B5-0150A66FDB34}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.HttpApi.Client", "src\EasyAbp.EShop.Payments.WeChatPay.HttpApi.Client\EasyAbp.EShop.Payments.WeChatPay.HttpApi.Client.csproj", "{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.TestBase", "test\EasyAbp.EShop.Payments.WeChatPay.TestBase\EasyAbp.EShop.Payments.WeChatPay.TestBase.csproj", "{C5BB573D-3030-4BCB-88B7-F6A85C32766C}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore.Tests", "test\EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore.Tests\EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore.Tests.csproj", "{527F645C-C1FC-406E-8479-81386C8ECF13}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.MongoDB.Tests", "test\EasyAbp.EShop.Payments.WeChatPay.MongoDB.Tests\EasyAbp.EShop.Payments.WeChatPay.MongoDB.Tests.csproj", "{D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.Domain.Tests", "test\EasyAbp.EShop.Payments.WeChatPay.Domain.Tests\EasyAbp.EShop.Payments.WeChatPay.Domain.Tests.csproj", "{E60895E5-79C4-447D-88B7-85CB5BA336A4}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.Application.Tests", "test\EasyAbp.EShop.Payments.WeChatPay.Application.Tests\EasyAbp.EShop.Payments.WeChatPay.Application.Tests.csproj", "{90CB5DC4-C040-45C7-8900-9688B26405BC}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.HttpApi.Host", "host\EasyAbp.EShop.Payments.WeChatPay.HttpApi.Host\EasyAbp.EShop.Payments.WeChatPay.HttpApi.Host.csproj", "{37B135B0-DAFE-4616-B25C-1BDF32FC44A2}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.Web", "src\EasyAbp.EShop.Payments.WeChatPay.Web\EasyAbp.EShop.Payments.WeChatPay.Web.csproj", "{3B7B6317-1B85-4164-8E11-75574F80AE17}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.HttpApi.Client.ConsoleTestApp", "test\EasyAbp.EShop.Payments.WeChatPay.HttpApi.Client.ConsoleTestApp\EasyAbp.EShop.Payments.WeChatPay.HttpApi.Client.ConsoleTestApp.csproj", "{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.Web.Host", "host\EasyAbp.EShop.Payments.WeChatPay.Web.Host\EasyAbp.EShop.Payments.WeChatPay.Web.Host.csproj", "{73513786-B6C6-4A21-89C5-0FBDD0A46107}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.IdentityServer", "host\EasyAbp.EShop.Payments.WeChatPay.IdentityServer\EasyAbp.EShop.Payments.WeChatPay.IdentityServer.csproj", "{690203F4-3CD5-4569-88D9-EE831EEA5F5F}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.Host.Shared", "host\EasyAbp.EShop.Payments.WeChatPay.Host.Shared\EasyAbp.EShop.Payments.WeChatPay.Host.Shared.csproj", "{F6AC8D4A-EDD7-4514-8E8A-5BCB019864DB}" |
|
||||
EndProject |
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyAbp.EShop.Payments.WeChatPay.Web.Unified", "host\EasyAbp.EShop.Payments.WeChatPay.Web.Unified\EasyAbp.EShop.Payments.WeChatPay.Web.Unified.csproj", "{3D872C41-E226-45C8-89C1-9D3DBD7C73F2}" |
|
||||
EndProject |
|
||||
Global |
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
|
||||
Debug|Any CPU = Debug|Any CPU |
|
||||
Release|Any CPU = Release|Any CPU |
|
||||
EndGlobalSection |
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution |
|
||||
{D64C1577-4929-4B60-939E-96DE1534891A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{D64C1577-4929-4B60-939E-96DE1534891A}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{D64C1577-4929-4B60-939E-96DE1534891A}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{D64C1577-4929-4B60-939E-96DE1534891A}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{78040F9E-3501-4A40-82DF-00A597710F35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{78040F9E-3501-4A40-82DF-00A597710F35}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{78040F9E-3501-4A40-82DF-00A597710F35}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{78040F9E-3501-4A40-82DF-00A597710F35}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{F1C58097-4C08-4D88-8976-6B3389391481}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{F1C58097-4C08-4D88-8976-6B3389391481}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{F1C58097-4C08-4D88-8976-6B3389391481}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{F1C58097-4C08-4D88-8976-6B3389391481}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{527F645C-C1FC-406E-8479-81386C8ECF13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{527F645C-C1FC-406E-8479-81386C8ECF13}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{527F645C-C1FC-406E-8479-81386C8ECF13}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{527F645C-C1FC-406E-8479-81386C8ECF13}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{E60895E5-79C4-447D-88B7-85CB5BA336A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{E60895E5-79C4-447D-88B7-85CB5BA336A4}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{E60895E5-79C4-447D-88B7-85CB5BA336A4}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{E60895E5-79C4-447D-88B7-85CB5BA336A4}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{90CB5DC4-C040-45C7-8900-9688B26405BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{90CB5DC4-C040-45C7-8900-9688B26405BC}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{90CB5DC4-C040-45C7-8900-9688B26405BC}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{90CB5DC4-C040-45C7-8900-9688B26405BC}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{37B135B0-DAFE-4616-B25C-1BDF32FC44A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{37B135B0-DAFE-4616-B25C-1BDF32FC44A2}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{37B135B0-DAFE-4616-B25C-1BDF32FC44A2}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{37B135B0-DAFE-4616-B25C-1BDF32FC44A2}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{3B7B6317-1B85-4164-8E11-75574F80AE17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{3B7B6317-1B85-4164-8E11-75574F80AE17}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{3B7B6317-1B85-4164-8E11-75574F80AE17}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{3B7B6317-1B85-4164-8E11-75574F80AE17}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{73513786-B6C6-4A21-89C5-0FBDD0A46107}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{73513786-B6C6-4A21-89C5-0FBDD0A46107}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{73513786-B6C6-4A21-89C5-0FBDD0A46107}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{73513786-B6C6-4A21-89C5-0FBDD0A46107}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{690203F4-3CD5-4569-88D9-EE831EEA5F5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{690203F4-3CD5-4569-88D9-EE831EEA5F5F}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{690203F4-3CD5-4569-88D9-EE831EEA5F5F}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{690203F4-3CD5-4569-88D9-EE831EEA5F5F}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{F6AC8D4A-EDD7-4514-8E8A-5BCB019864DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{F6AC8D4A-EDD7-4514-8E8A-5BCB019864DB}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{F6AC8D4A-EDD7-4514-8E8A-5BCB019864DB}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{F6AC8D4A-EDD7-4514-8E8A-5BCB019864DB}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
{3D872C41-E226-45C8-89C1-9D3DBD7C73F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
||||
{3D872C41-E226-45C8-89C1-9D3DBD7C73F2}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
||||
{3D872C41-E226-45C8-89C1-9D3DBD7C73F2}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
||||
{3D872C41-E226-45C8-89C1-9D3DBD7C73F2}.Release|Any CPU.Build.0 = Release|Any CPU |
|
||||
EndGlobalSection |
|
||||
GlobalSection(SolutionProperties) = preSolution |
|
||||
HideSolutionNode = FALSE |
|
||||
EndGlobalSection |
|
||||
GlobalSection(NestedProjects) = preSolution |
|
||||
{D64C1577-4929-4B60-939E-96DE1534891A} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} |
|
||||
{F2840BC7-0188-4606-9126-DADD0F5ABF7A} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} |
|
||||
{BD65D04F-08D5-40C1-8C24-77CA0BACB877} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} |
|
||||
{78040F9E-3501-4A40-82DF-00A597710F35} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} |
|
||||
{0CE86223-D31D-4315-A1F5-87BA3EE1B844} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} |
|
||||
{F1C58097-4C08-4D88-8976-6B3389391481} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} |
|
||||
{077AA5F8-8B61-420C-A6B5-0150A66FDB34} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} |
|
||||
{36E2735F-CEAB-44C8-A6D1-2CDAFF399751} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} |
|
||||
{C5BB573D-3030-4BCB-88B7-F6A85C32766C} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} |
|
||||
{527F645C-C1FC-406E-8479-81386C8ECF13} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} |
|
||||
{D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} |
|
||||
{E60895E5-79C4-447D-88B7-85CB5BA336A4} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} |
|
||||
{90CB5DC4-C040-45C7-8900-9688B26405BC} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} |
|
||||
{37B135B0-DAFE-4616-B25C-1BDF32FC44A2} = {E400416D-2895-4512-9D17-90681EEC7E0A} |
|
||||
{3B7B6317-1B85-4164-8E11-75574F80AE17} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} |
|
||||
{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} |
|
||||
{73513786-B6C6-4A21-89C5-0FBDD0A46107} = {E400416D-2895-4512-9D17-90681EEC7E0A} |
|
||||
{690203F4-3CD5-4569-88D9-EE831EEA5F5F} = {E400416D-2895-4512-9D17-90681EEC7E0A} |
|
||||
{F6AC8D4A-EDD7-4514-8E8A-5BCB019864DB} = {E400416D-2895-4512-9D17-90681EEC7E0A} |
|
||||
{3D872C41-E226-45C8-89C1-9D3DBD7C73F2} = {E400416D-2895-4512-9D17-90681EEC7E0A} |
|
||||
EndGlobalSection |
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution |
|
||||
SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD} |
|
||||
EndGlobalSection |
|
||||
EndGlobal |
|
||||
@ -1,23 +0,0 @@ |
|||||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> |
|
||||
<s:Boolean x:Key="/Default/CodeEditing/Intellisense/CodeCompletion/IntelliSenseCompletingCharacters/CSharpCompletingCharacters/UpgradedFromVSSettings/@EntryValue">True</s:Boolean> |
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceDoWhileStatementBraces/@EntryIndexedValue">WARNING</s:String> |
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceFixedStatementBraces/@EntryIndexedValue">WARNING</s:String> |
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceForeachStatementBraces/@EntryIndexedValue">WARNING</s:String> |
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceForStatementBraces/@EntryIndexedValue">WARNING</s:String> |
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceIfStatementBraces/@EntryIndexedValue">WARNING</s:String> |
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceLockStatementBraces/@EntryIndexedValue">WARNING</s:String> |
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceUsingStatementBraces/@EntryIndexedValue">WARNING</s:String> |
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EnforceWhileStatementBraces/@EntryIndexedValue">WARNING</s:String> |
|
||||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_FOR_FOR/@EntryValue">Required</s:String> |
|
||||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_FOR_FOREACH/@EntryValue">Required</s:String> |
|
||||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_FOR_IFELSE/@EntryValue">Required</s:String> |
|
||||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_FOR_WHILE/@EntryValue">Required</s:String> |
|
||||
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_REDUNDANT/@EntryValue">False</s:Boolean> |
|
||||
<s:Boolean x:Key="/Default/CodeStyle/Generate/=Implementations/@KeyIndexDefined">True</s:Boolean> |
|
||||
<s:String x:Key="/Default/CodeStyle/Generate/=Implementations/Options/=Async/@EntryIndexedValue">False</s:String> |
|
||||
<s:String x:Key="/Default/CodeStyle/Generate/=Implementations/Options/=Mutable/@EntryIndexedValue">False</s:String> |
|
||||
<s:Boolean x:Key="/Default/CodeStyle/Generate/=Overrides/@KeyIndexDefined">True</s:Boolean> |
|
||||
<s:String x:Key="/Default/CodeStyle/Generate/=Overrides/Options/=Async/@EntryIndexedValue">False</s:String> |
|
||||
<s:String x:Key="/Default/CodeStyle/Generate/=Overrides/Options/=Mutable/@EntryIndexedValue">False</s:String> |
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SQL/@EntryIndexedValue">SQL</s:String> |
|
||||
</wpf:ResourceDictionary> |
|
||||
@ -1,28 +0,0 @@ |
|||||
<Project> |
|
||||
<PropertyGroup> |
|
||||
<LangVersion>latest</LangVersion> |
|
||||
<Version>0.1.11</Version> |
|
||||
<NoWarn>$(NoWarn);CS1591</NoWarn> |
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> |
|
||||
<Authors>EasyAbp Team</Authors> |
|
||||
<Description>An abp application module group that provides basic e-shop service.</Description> |
|
||||
<PackageProjectUrl>https://github.com/EasyAbp/EShop</PackageProjectUrl> |
|
||||
<RepositoryUrl>https://github.com/EasyAbp/EShop</RepositoryUrl> |
|
||||
<PackageTags>abp module easyabp EShop shopping shop ordering product payment store mall</PackageTags> |
|
||||
<Company>EasyAbp</Company> |
|
||||
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression> |
|
||||
</PropertyGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<PackageReference Include="SourceLink.Create.CommandLine" Version="2.8.3" PrivateAssets="All" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<PackageReference Include="ConfigureAwait.Fody" Version="3.3.1" /> |
|
||||
<PackageReference Include="Fody" Version="6.0.6"> |
|
||||
<PrivateAssets>all</PrivateAssets> |
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> |
|
||||
</PackageReference> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
</Project> |
|
||||
@ -1,13 +0,0 @@ |
|||||
version: '3.4' |
|
||||
|
|
||||
services: |
|
||||
migrations: |
|
||||
build: |
|
||||
context: ../../ |
|
||||
dockerfile: templates/service/database/Dockerfile |
|
||||
depends_on: |
|
||||
- sqlserver |
|
||||
environment: |
|
||||
- IdentityServer_DB=WeChatPay_Identity |
|
||||
- WeChatPay_DB=WeChatPay_ModuleDb |
|
||||
- SA_PASSWORD=yourStrong(!)Password |
|
||||
@ -1,29 +0,0 @@ |
|||||
version: '3.4' |
|
||||
|
|
||||
services: |
|
||||
sqlserver: |
|
||||
environment: |
|
||||
- SA_PASSWORD=yourStrong(!)Password |
|
||||
- ACCEPT_EULA=Y |
|
||||
ports: |
|
||||
- "51599:1433" |
|
||||
|
|
||||
identity-server: |
|
||||
environment: |
|
||||
- ASPNETCORE_URLS=http://0.0.0.0:80 |
|
||||
- ConnectionStrings__Default=Server=sqlserver;Database=WeChatPay_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false |
|
||||
- ConnectionStrings__SqlServerCache=Server=sqlserver;Database=WeChatPay_Cache;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false |
|
||||
ports: |
|
||||
- "51600:80" |
|
||||
|
|
||||
we-chat-pay: |
|
||||
environment: |
|
||||
- ASPNETCORE_URLS=http://0.0.0.0:80 |
|
||||
- ConnectionStrings__Default=Server=sqlserver;Database=WeChatPay_ModuleDb;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false |
|
||||
- ConnectionStrings__AbpSettingManagement=Server=sqlserver;Database=WeChatPay_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false |
|
||||
- ConnectionStrings__AbpPermissionManagement=Server=sqlserver;Database=WeChatPay_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false |
|
||||
- ConnectionStrings__AbpAuditLogging=Server=sqlserver;Database=WeChatPay_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false |
|
||||
- ConnectionStrings__SqlServerCache=Server=sqlserver;Database=WeChatPay_Cache;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false |
|
||||
- AuthServer__Authority=http://identity-server |
|
||||
ports: |
|
||||
- "51601:80" |
|
||||
@ -1,25 +0,0 @@ |
|||||
version: '3.4' |
|
||||
|
|
||||
services: |
|
||||
sqlserver: |
|
||||
image: mcr.microsoft.com/mssql/server |
|
||||
volumes: |
|
||||
- dbdata:/var/opt/mssql |
|
||||
|
|
||||
identity-server: |
|
||||
build: |
|
||||
context: ../../ |
|
||||
dockerfile: templates/service/host/IdentityServerHost/Dockerfile |
|
||||
depends_on: |
|
||||
- sqlserver |
|
||||
|
|
||||
we-chat-pay: |
|
||||
build: |
|
||||
context: ../../ |
|
||||
dockerfile: templates/service/host/EasyAbp.EShop.Payments.WeChatPay.Host/Dockerfile |
|
||||
depends_on: |
|
||||
- sqlserver |
|
||||
- identity-server |
|
||||
|
|
||||
volumes: |
|
||||
dbdata: |
|
||||
@ -1,16 +0,0 @@ |
|||||
<Project Sdk="Microsoft.NET.Sdk"> |
|
||||
|
|
||||
<Import Project="..\..\common.props" /> |
|
||||
|
|
||||
<PropertyGroup> |
|
||||
<TargetFramework>netstandard2.0</TargetFramework> |
|
||||
<RootNamespace /> |
|
||||
</PropertyGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<PackageReference Include="Volo.Abp.Ddd.Application.Contracts" Version="2.7.0" /> |
|
||||
<PackageReference Include="Volo.Abp.Authorization" Version="2.7.0" /> |
|
||||
<ProjectReference Include="..\EasyAbp.EShop.Payments.WeChatPay.Domain.Shared\EasyAbp.EShop.Payments.WeChatPay.Domain.Shared.csproj" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
</Project> |
|
||||
@ -1,19 +0,0 @@ |
|||||
using EasyAbp.EShop.Payments.WeChatPay.Localization; |
|
||||
using Volo.Abp.Authorization.Permissions; |
|
||||
using Volo.Abp.Localization; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.Authorization |
|
||||
{ |
|
||||
public class WeChatPayPermissionDefinitionProvider : PermissionDefinitionProvider |
|
||||
{ |
|
||||
public override void Define(IPermissionDefinitionContext context) |
|
||||
{ |
|
||||
//var moduleGroup = context.AddGroup(WeChatPayPermissions.GroupName, L("Permission:WeChatPay"));
|
|
||||
} |
|
||||
|
|
||||
private static LocalizableString L(string name) |
|
||||
{ |
|
||||
return LocalizableString.Create<WeChatPayResource>(name); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,14 +0,0 @@ |
|||||
using Volo.Abp.Reflection; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.Authorization |
|
||||
{ |
|
||||
public class WeChatPayPermissions |
|
||||
{ |
|
||||
public const string GroupName = "EasyAbp.EShop.Payments.WeChatPay"; |
|
||||
|
|
||||
public static string[] GetAll() |
|
||||
{ |
|
||||
return ReflectionHelper.GetPublicConstantsRecursively(typeof(WeChatPayPermissions)); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,23 +0,0 @@ |
|||||
using Volo.Abp.Application; |
|
||||
using Volo.Abp.Modularity; |
|
||||
using Volo.Abp.VirtualFileSystem; |
|
||||
using Volo.Abp.Authorization; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
[DependsOn( |
|
||||
typeof(EShopPaymentsWeChatPayDomainSharedModule), |
|
||||
typeof(AbpDddApplicationContractsModule), |
|
||||
typeof(AbpAuthorizationModule) |
|
||||
)] |
|
||||
public class EShopPaymentsWeChatPayApplicationContractsModule : AbpModule |
|
||||
{ |
|
||||
public override void ConfigureServices(ServiceConfigurationContext context) |
|
||||
{ |
|
||||
Configure<AbpVirtualFileSystemOptions>(options => |
|
||||
{ |
|
||||
options.FileSets.AddEmbedded<EShopPaymentsWeChatPayApplicationContractsModule>("EasyAbp.EShop.Payments.WeChatPay"); |
|
||||
}); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,3 +0,0 @@ |
|||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|
||||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|
||||
</Weavers> |
|
||||
@ -1,30 +0,0 @@ |
|||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
||||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|
||||
<xs:element name="Weavers"> |
|
||||
<xs:complexType> |
|
||||
<xs:all> |
|
||||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|
||||
<xs:complexType> |
|
||||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:all> |
|
||||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:schema> |
|
||||
@ -1,17 +0,0 @@ |
|||||
<Project Sdk="Microsoft.NET.Sdk"> |
|
||||
|
|
||||
<Import Project="..\..\common.props" /> |
|
||||
|
|
||||
<PropertyGroup> |
|
||||
<TargetFramework>netstandard2.0</TargetFramework> |
|
||||
<RootNamespace /> |
|
||||
</PropertyGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<PackageReference Include="Volo.Abp.AutoMapper" Version="2.7.0" /> |
|
||||
<PackageReference Include="Volo.Abp.Ddd.Application" Version="2.7.0" /> |
|
||||
<ProjectReference Include="..\EasyAbp.EShop.Payments.WeChatPay.Application.Contracts\EasyAbp.EShop.Payments.WeChatPay.Application.Contracts.csproj" /> |
|
||||
<ProjectReference Include="..\EasyAbp.EShop.Payments.WeChatPay.Domain\EasyAbp.EShop.Payments.WeChatPay.Domain.csproj" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
</Project> |
|
||||
@ -1,25 +0,0 @@ |
|||||
using Microsoft.Extensions.DependencyInjection; |
|
||||
using Volo.Abp.AutoMapper; |
|
||||
using Volo.Abp.Modularity; |
|
||||
using Volo.Abp.Application; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
[DependsOn( |
|
||||
typeof(EShopPaymentsWeChatPayDomainModule), |
|
||||
typeof(EShopPaymentsWeChatPayApplicationContractsModule), |
|
||||
typeof(AbpDddApplicationModule), |
|
||||
typeof(AbpAutoMapperModule) |
|
||||
)] |
|
||||
public class EShopPaymentsWeChatPayApplicationModule : AbpModule |
|
||||
{ |
|
||||
public override void ConfigureServices(ServiceConfigurationContext context) |
|
||||
{ |
|
||||
context.Services.AddAutoMapperObjectMapper<EShopPaymentsWeChatPayApplicationModule>(); |
|
||||
Configure<AbpAutoMapperOptions>(options => |
|
||||
{ |
|
||||
options.AddMaps<EShopPaymentsWeChatPayApplicationModule>(validate: true); |
|
||||
}); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,14 +0,0 @@ |
|||||
using EasyAbp.EShop.Payments.WeChatPay.Localization; |
|
||||
using Volo.Abp.Application.Services; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
public abstract class WeChatPayAppService : ApplicationService |
|
||||
{ |
|
||||
protected WeChatPayAppService() |
|
||||
{ |
|
||||
LocalizationResource = typeof(WeChatPayResource); |
|
||||
ObjectMapperContext = typeof(EShopPaymentsWeChatPayApplicationModule); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,14 +0,0 @@ |
|||||
using AutoMapper; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
public class WeChatPayApplicationAutoMapperProfile : Profile |
|
||||
{ |
|
||||
public WeChatPayApplicationAutoMapperProfile() |
|
||||
{ |
|
||||
/* You can configure your AutoMapper mapping configuration here. |
|
||||
* Alternatively, you can split your mapping configurations |
|
||||
* into multiple profile classes for a better organization. */ |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,3 +0,0 @@ |
|||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|
||||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|
||||
</Weavers> |
|
||||
@ -1,30 +0,0 @@ |
|||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
||||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|
||||
<xs:element name="Weavers"> |
|
||||
<xs:complexType> |
|
||||
<xs:all> |
|
||||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|
||||
<xs:complexType> |
|
||||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:all> |
|
||||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:schema> |
|
||||
@ -1,19 +0,0 @@ |
|||||
<Project Sdk="Microsoft.NET.Sdk"> |
|
||||
|
|
||||
<Import Project="..\..\common.props" /> |
|
||||
|
|
||||
<PropertyGroup> |
|
||||
<TargetFramework>netstandard2.0</TargetFramework> |
|
||||
<RootNamespace /> |
|
||||
</PropertyGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<PackageReference Include="Volo.Abp.Validation" Version="2.7.0" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<EmbeddedResource Include="EasyAbp\EShop\Payments\WeChatPay\Localization\WeChatPay\*.json" /> |
|
||||
<Content Remove="EasyAbp\EShop\Payments\WeChatPay\Localization\WeChatPay\*.json" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
</Project> |
|
||||
@ -1,37 +0,0 @@ |
|||||
using Volo.Abp.Modularity; |
|
||||
using Volo.Abp.Localization; |
|
||||
using EasyAbp.EShop.Payments.WeChatPay.Localization; |
|
||||
using Volo.Abp.Localization.ExceptionHandling; |
|
||||
using Volo.Abp.Validation; |
|
||||
using Volo.Abp.Validation.Localization; |
|
||||
using Volo.Abp.VirtualFileSystem; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
[DependsOn( |
|
||||
typeof(AbpValidationModule) |
|
||||
)] |
|
||||
public class EShopPaymentsWeChatPayDomainSharedModule : AbpModule |
|
||||
{ |
|
||||
public override void ConfigureServices(ServiceConfigurationContext context) |
|
||||
{ |
|
||||
Configure<AbpVirtualFileSystemOptions>(options => |
|
||||
{ |
|
||||
options.FileSets.AddEmbedded<EShopPaymentsWeChatPayDomainSharedModule>(); |
|
||||
}); |
|
||||
|
|
||||
Configure<AbpLocalizationOptions>(options => |
|
||||
{ |
|
||||
options.Resources |
|
||||
.Add<WeChatPayResource>("en") |
|
||||
.AddBaseTypes(typeof(AbpValidationResource)) |
|
||||
.AddVirtualJson("/EasyAbp/EShop/Payments/WeChatPay/Localization/WeChatPay"); |
|
||||
}); |
|
||||
|
|
||||
Configure<AbpExceptionLocalizationOptions>(options => |
|
||||
{ |
|
||||
options.MapCodeNamespace("EasyAbp.EShop.Payments.WeChatPay", typeof(WeChatPayResource)); |
|
||||
}); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,6 +0,0 @@ |
|||||
{ |
|
||||
"culture": "cs", |
|
||||
"texts": { |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
@ -1,6 +0,0 @@ |
|||||
{ |
|
||||
"culture": "en", |
|
||||
"texts": { |
|
||||
"ManageYourProfile": "Manage your profile" |
|
||||
} |
|
||||
} |
|
||||
@ -1,6 +0,0 @@ |
|||||
{ |
|
||||
"culture": "pl", |
|
||||
"texts": { |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
@ -1,6 +0,0 @@ |
|||||
{ |
|
||||
"culture": "pt-BR", |
|
||||
"texts": { |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
@ -1,6 +0,0 @@ |
|||||
{ |
|
||||
"culture": "sl", |
|
||||
"texts": { |
|
||||
"ManageYourProfile": "Upravljajte svojim profilom" |
|
||||
} |
|
||||
} |
|
||||
@ -1,6 +0,0 @@ |
|||||
{ |
|
||||
"culture": "tr", |
|
||||
"texts": { |
|
||||
"ManageYourProfile": "Profil yönetimi" |
|
||||
} |
|
||||
} |
|
||||
@ -1,6 +0,0 @@ |
|||||
{ |
|
||||
"culture": "vi", |
|
||||
"texts": { |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
@ -1,6 +0,0 @@ |
|||||
{ |
|
||||
"culture": "zh-Hans", |
|
||||
"texts": { |
|
||||
"ManageYourProfile": "管理个人资料" |
|
||||
} |
|
||||
} |
|
||||
@ -1,6 +0,0 @@ |
|||||
{ |
|
||||
"culture": "zh-Hant", |
|
||||
"texts": { |
|
||||
"ManageYourProfile": "管理個人資料" |
|
||||
} |
|
||||
} |
|
||||
@ -1,10 +0,0 @@ |
|||||
using Volo.Abp.Localization; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.Localization |
|
||||
{ |
|
||||
[LocalizationResourceName("EasyAbpEShopPaymentsWeChatPay")] |
|
||||
public class WeChatPayResource |
|
||||
{ |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
@ -1,7 +0,0 @@ |
|||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
public static class WeChatPayErrorCodes |
|
||||
{ |
|
||||
//Add your business exception error codes here...
|
|
||||
} |
|
||||
} |
|
||||
@ -1,3 +0,0 @@ |
|||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|
||||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|
||||
</Weavers> |
|
||||
@ -1,30 +0,0 @@ |
|||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
||||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|
||||
<xs:element name="Weavers"> |
|
||||
<xs:complexType> |
|
||||
<xs:all> |
|
||||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|
||||
<xs:complexType> |
|
||||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:all> |
|
||||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:schema> |
|
||||
@ -1,17 +0,0 @@ |
|||||
<Project Sdk="Microsoft.NET.Sdk"> |
|
||||
|
|
||||
<Import Project="..\..\common.props" /> |
|
||||
|
|
||||
<PropertyGroup> |
|
||||
<TargetFramework>netstandard2.0</TargetFramework> |
|
||||
<RootNamespace /> |
|
||||
</PropertyGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<PackageReference Include="EasyAbp.Abp.WeChat.Pay" Version="1.0.3" /> |
|
||||
<PackageReference Include="Volo.Abp.Ddd.Domain" Version="2.7.0" /> |
|
||||
<ProjectReference Include="..\..\..\EasyAbp.EShop.Payments\src\EasyAbp.EShop.Payments.Domain\EasyAbp.EShop.Payments.Domain.csproj" /> |
|
||||
<ProjectReference Include="..\EasyAbp.EShop.Payments.WeChatPay.Domain.Shared\EasyAbp.EShop.Payments.WeChatPay.Domain.Shared.csproj" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
</Project> |
|
||||
@ -1,28 +0,0 @@ |
|||||
using System; |
|
||||
using System.Threading.Tasks; |
|
||||
using Microsoft.Extensions.DependencyInjection; |
|
||||
using Volo.Abp.DependencyInjection; |
|
||||
using Volo.Abp.Users; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
[Dependency(ServiceLifetime.Singleton, TryRegister = true)] |
|
||||
public class ClaimPaymentOpenIdProvider : IPaymentOpenIdProvider |
|
||||
{ |
|
||||
public const string OpenIdClaimType = "WeChatOpenId"; |
|
||||
|
|
||||
private readonly ICurrentUser _currentUser; |
|
||||
|
|
||||
public ClaimPaymentOpenIdProvider(ICurrentUser currentUser) |
|
||||
{ |
|
||||
_currentUser = currentUser; |
|
||||
} |
|
||||
|
|
||||
public Task<string> FindUserOpenIdAsync(Guid userId) |
|
||||
{ |
|
||||
return Task.FromResult(userId == _currentUser.Id |
|
||||
? _currentUser.FindClaim(OpenIdClaimType).Value |
|
||||
: throw new NotSupportedException()); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,25 +0,0 @@ |
|||||
using System.Collections.Generic; |
|
||||
using EasyAbp.Abp.WeChat.Pay; |
|
||||
using EasyAbp.Abp.WeChat.Pay.Infrastructure.OptionResolve; |
|
||||
using Microsoft.Extensions.DependencyInjection; |
|
||||
using Volo.Abp.Modularity; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
[DependsOn( |
|
||||
typeof(EShopPaymentsWeChatPayDomainSharedModule), |
|
||||
typeof(AbpWeChatPayModule) |
|
||||
)] |
|
||||
public class EShopPaymentsWeChatPayDomainModule : AbpModule |
|
||||
{ |
|
||||
public override void PostConfigureServices(ServiceConfigurationContext context) |
|
||||
{ |
|
||||
var configuration = context.Services.GetConfiguration(); |
|
||||
|
|
||||
Configure<AbpWeChatPayResolveOptions>(options => |
|
||||
{ |
|
||||
options.ResolveContributors.AddFirst(new SettingOptionResolveContributor()); |
|
||||
}); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,61 +0,0 @@ |
|||||
using System; |
|
||||
using System.Threading.Tasks; |
|
||||
using System.Xml; |
|
||||
using EasyAbp.Abp.WeChat.Pay.Infrastructure; |
|
||||
using EasyAbp.EShop.Payments.Payments; |
|
||||
using Volo.Abp.Data; |
|
||||
using Volo.Abp.DependencyInjection; |
|
||||
using Volo.Abp.MultiTenancy; |
|
||||
using Volo.Abp.Timing; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
public class EShopWeChatPayHandler : IWeChatPayHandler, ITransientDependency |
|
||||
{ |
|
||||
private readonly IClock _clock; |
|
||||
private readonly IDataFilter _dataFilter; |
|
||||
private readonly IPaymentRepository _paymentRepository; |
|
||||
|
|
||||
public EShopWeChatPayHandler( |
|
||||
IClock clock, |
|
||||
IDataFilter dataFilter, |
|
||||
IPaymentRepository paymentRepository) |
|
||||
{ |
|
||||
_clock = clock; |
|
||||
_dataFilter = dataFilter; |
|
||||
_paymentRepository = paymentRepository; |
|
||||
} |
|
||||
|
|
||||
public virtual async Task HandleAsync(XmlDocument xmlDocument) |
|
||||
{ |
|
||||
using var disabledDataFilter = _dataFilter.Disable<IMultiTenant>(); |
|
||||
|
|
||||
var xml = xmlDocument.SelectSingleNode("xml") ?? |
|
||||
throw new XmlDocumentMissingRequiredElementException("xml"); |
|
||||
|
|
||||
if (xml.SelectSingleNode("return_code")?.InnerText != "SUCCESS") |
|
||||
{ |
|
||||
return; |
|
||||
} |
|
||||
|
|
||||
// Todo: sign check
|
|
||||
|
|
||||
if (xml.SelectSingleNode("result_code")?.InnerText == "SUCCESS") |
|
||||
{ |
|
||||
var orderId = Guid.Parse(xml.SelectSingleNode("out_trade_no")?.InnerText ?? |
|
||||
throw new XmlDocumentMissingRequiredElementException("out_trade_no")); |
|
||||
|
|
||||
var payment = await _paymentRepository.GetAsync(orderId); |
|
||||
|
|
||||
payment.SetExternalTradingCode(xml.SelectSingleNode("transaction_id")?.InnerText ?? |
|
||||
throw new XmlDocumentMissingRequiredElementException("transaction_id")); |
|
||||
|
|
||||
payment.CompletePayment(_clock.Now); |
|
||||
|
|
||||
await _paymentRepository.UpdateAsync(payment, true); |
|
||||
} |
|
||||
|
|
||||
// Todo: record xml
|
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,10 +0,0 @@ |
|||||
using System; |
|
||||
using System.Threading.Tasks; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
public interface IPaymentOpenIdProvider |
|
||||
{ |
|
||||
Task<string> FindUserOpenIdAsync(Guid userId); |
|
||||
} |
|
||||
} |
|
||||
@ -1,32 +0,0 @@ |
|||||
using System; |
|
||||
using System.Threading.Tasks; |
|
||||
using EasyAbp.Abp.WeChat.Pay; |
|
||||
using EasyAbp.Abp.WeChat.Pay.Infrastructure.OptionResolve; |
|
||||
using EasyAbp.EShop.Payments.WeChatPay.Settings; |
|
||||
using Microsoft.Extensions.DependencyInjection; |
|
||||
using Volo.Abp.Settings; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
public class SettingOptionResolveContributor : IWeChatPayOptionResolveContributor |
|
||||
{ |
|
||||
public const string ContributorName = "Setting"; |
|
||||
|
|
||||
public string Name => ContributorName; |
|
||||
|
|
||||
public virtual async Task ResolveAsync(WeChatPayOptionsResolverContext context) |
|
||||
{ |
|
||||
var settingProvider = context.ServiceProvider.GetRequiredService<ISettingProvider>(); |
|
||||
context.Options = new AbpWeChatPayOptions |
|
||||
{ |
|
||||
ApiKey = await settingProvider.GetOrNullAsync(WeChatPaySettings.WeChatPayPaymentMethod.ApiKey), |
|
||||
MchId = await settingProvider.GetOrNullAsync(WeChatPaySettings.WeChatPayPaymentMethod.MchId), |
|
||||
IsSandBox = Convert.ToBoolean(await settingProvider.GetOrNullAsync(WeChatPaySettings.WeChatPayPaymentMethod.IsSandBox)), |
|
||||
NotifyUrl = await settingProvider.GetOrNullAsync(WeChatPaySettings.WeChatPayPaymentMethod.NotifyUrl), |
|
||||
RefundNotifyUrl = await settingProvider.GetOrNullAsync(WeChatPaySettings.WeChatPayPaymentMethod.RefundNotifyUrl), |
|
||||
CertificatePath = await settingProvider.GetOrNullAsync(WeChatPaySettings.WeChatPayPaymentMethod.CertificatePath), |
|
||||
CertificateSecret = await settingProvider.GetOrNullAsync(WeChatPaySettings.WeChatPayPaymentMethod.CertificateSecret) |
|
||||
}; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,35 +0,0 @@ |
|||||
using System; |
|
||||
using Microsoft.Extensions.Configuration; |
|
||||
using Volo.Abp.Settings; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.Settings |
|
||||
{ |
|
||||
public class WeChatPaySettingDefinitionProvider : SettingDefinitionProvider |
|
||||
{ |
|
||||
private readonly IConfiguration _configuration; |
|
||||
|
|
||||
public WeChatPaySettingDefinitionProvider(IConfiguration configuration) |
|
||||
{ |
|
||||
_configuration = configuration; |
|
||||
} |
|
||||
|
|
||||
public override void Define(ISettingDefinitionContext context) |
|
||||
{ |
|
||||
/* Define module settings here. |
|
||||
* Use names from WeChatPaySettings class. |
|
||||
*/ |
|
||||
|
|
||||
context.Add( |
|
||||
new SettingDefinition(WeChatPaySettings.WeChatPayPaymentMethod.MchId), |
|
||||
new SettingDefinition(WeChatPaySettings.WeChatPayPaymentMethod.ApiKey), |
|
||||
new SettingDefinition(WeChatPaySettings.WeChatPayPaymentMethod.IsSandBox, "false"), |
|
||||
new SettingDefinition(WeChatPaySettings.WeChatPayPaymentMethod.NotifyUrl, |
|
||||
_configuration["App:SelfUrl"]?.EnsureEndsWith('/') + "WeChatPay/Notify"), |
|
||||
new SettingDefinition(WeChatPaySettings.WeChatPayPaymentMethod.RefundNotifyUrl, |
|
||||
_configuration["App:SelfUrl"]?.EnsureEndsWith('/') + "WeChatPay/RefundNotify"), |
|
||||
new SettingDefinition(WeChatPaySettings.WeChatPayPaymentMethod.CertificatePath), |
|
||||
new SettingDefinition(WeChatPaySettings.WeChatPayPaymentMethod.CertificateSecret) |
|
||||
); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,24 +0,0 @@ |
|||||
namespace EasyAbp.EShop.Payments.WeChatPay.Settings |
|
||||
{ |
|
||||
public static class WeChatPaySettings |
|
||||
{ |
|
||||
public const string GroupName = "EasyAbp.EShop.Payments.WeChatPay"; |
|
||||
|
|
||||
/* Add constants for setting names. Example: |
|
||||
* public const string MySettingName = GroupName + ".MySettingName"; |
|
||||
*/ |
|
||||
|
|
||||
public static class WeChatPayPaymentMethod |
|
||||
{ |
|
||||
private const string PaymentMethodName = GroupName + ".WeChatPay"; |
|
||||
|
|
||||
public const string MchId = PaymentMethodName + ".MchId"; |
|
||||
public const string ApiKey = PaymentMethodName + ".ApiKey"; |
|
||||
public const string IsSandBox = PaymentMethodName + ".IsSandBox"; |
|
||||
public const string NotifyUrl = PaymentMethodName + ".NotifyUrl"; |
|
||||
public const string RefundNotifyUrl = PaymentMethodName + ".RefundNotifyUrl"; |
|
||||
public const string CertificatePath = PaymentMethodName + ".CertificatePath"; |
|
||||
public const string CertificateSecret = PaymentMethodName + ".CertificateSecret"; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,21 +0,0 @@ |
|||||
using Volo.Abp; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
public class UnifiedOrderFailedException : BusinessException |
|
||||
{ |
|
||||
public UnifiedOrderFailedException() : base(message: $"Unified order failed") |
|
||||
{ |
|
||||
} |
|
||||
|
|
||||
public UnifiedOrderFailedException(string returnCode, string returnMsg) : base( |
|
||||
message: $"Unified order failed, return_code: {returnCode}, return_msg: {returnMsg}") |
|
||||
{ |
|
||||
} |
|
||||
|
|
||||
public UnifiedOrderFailedException(string returnCode, string returnMsg, string errCode, string errCodeDes) : |
|
||||
base(message: $"Unified order failed, return_code: {returnCode}, return_msg: {returnMsg}, err_code: {errCode}, err_code_des: {errCodeDes}") |
|
||||
{ |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,11 +0,0 @@ |
|||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
public static class WeChatPayDbProperties |
|
||||
{ |
|
||||
public static string DbTablePrefix { get; set; } = "WeChatPay"; |
|
||||
|
|
||||
public static string DbSchema { get; set; } = null; |
|
||||
|
|
||||
public const string ConnectionStringName = "WeChatPay"; |
|
||||
} |
|
||||
} |
|
||||
@ -1,108 +0,0 @@ |
|||||
using System; |
|
||||
using System.Collections.Generic; |
|
||||
using System.Threading.Tasks; |
|
||||
using EasyAbp.Abp.WeChat.Pay.Services.Pay; |
|
||||
using EasyAbp.EShop.Payments.Payments; |
|
||||
using EasyAbp.EShop.Payments.WeChatPay.Settings; |
|
||||
using Microsoft.Extensions.Configuration; |
|
||||
using Volo.Abp.Data; |
|
||||
using Volo.Abp.DependencyInjection; |
|
||||
using Volo.Abp.Settings; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
public class WeChatPayPaymentServiceProvider : IPaymentServiceProvider, ITransientDependency |
|
||||
{ |
|
||||
private readonly ServiceProviderPayService _serviceProviderPayService; |
|
||||
private readonly IConfiguration _configuration; |
|
||||
private readonly ISettingProvider _settingProvider; |
|
||||
private readonly IPaymentOpenIdProvider _paymentOpenIdProvider; |
|
||||
private readonly IPaymentRepository _paymentRepository; |
|
||||
|
|
||||
public const string PaymentMethod = "WeChatPay"; |
|
||||
|
|
||||
public WeChatPayPaymentServiceProvider( |
|
||||
ServiceProviderPayService serviceProviderPayService, |
|
||||
IConfiguration configuration, |
|
||||
ISettingProvider settingProvider, |
|
||||
IPaymentOpenIdProvider paymentOpenIdProvider, |
|
||||
IPaymentRepository paymentRepository) |
|
||||
{ |
|
||||
_serviceProviderPayService = serviceProviderPayService; |
|
||||
_configuration = configuration; |
|
||||
_settingProvider = settingProvider; |
|
||||
_paymentOpenIdProvider = paymentOpenIdProvider; |
|
||||
_paymentRepository = paymentRepository; |
|
||||
} |
|
||||
|
|
||||
public async Task<Payment> PayAsync(Payment payment, Dictionary<string, object> inputExtraProperties, |
|
||||
Dictionary<string, object> payeeConfigurations) |
|
||||
{ |
|
||||
if (payment.Currency != "CNY") |
|
||||
{ |
|
||||
throw new CurrencyNotSupportedException(payment.PaymentMethod, payment.Currency); |
|
||||
} |
|
||||
|
|
||||
var payeeAccount = payeeConfigurations.GetOrDefault("PayeeAccount") as string ?? |
|
||||
await _settingProvider.GetOrNullAsync(WeChatPaySettings.WeChatPayPaymentMethod |
|
||||
.MchId); |
|
||||
|
|
||||
payment.SetPayeeAccount(payeeAccount); |
|
||||
|
|
||||
var openId = await _paymentOpenIdProvider.FindUserOpenIdAsync(payment.UserId); |
|
||||
|
|
||||
var outTradeNo = payment.Id.ToString("N"); |
|
||||
|
|
||||
var result = await _serviceProviderPayService.UnifiedOrderAsync( |
|
||||
appId: inputExtraProperties.GetOrDefault("appid") as string, |
|
||||
subAppId: null, |
|
||||
mchId: payment.PayeeAccount, |
|
||||
subMchId: null, |
|
||||
deviceInfo: payeeConfigurations.GetOrDefault("deviceInfo") as string ?? "EasyAbp Payment Service", |
|
||||
body: payeeConfigurations.GetOrDefault("body") as string ?? "EasyAbp Payment Service", |
|
||||
detail: payeeConfigurations.GetOrDefault("detail") as string, |
|
||||
attach: payeeConfigurations.GetOrDefault("attach") as string, |
|
||||
outTradeNo: outTradeNo, |
|
||||
feeType: payment.Currency, |
|
||||
totalFee: ConvertDecimalToWeChatPayFee(payment.ActualPaymentAmount), |
|
||||
billCreateIp: "127.0.0.1", |
|
||||
timeStart: null, |
|
||||
timeExpire: null, |
|
||||
goodsTag: payeeConfigurations.GetOrDefault("goods_tag") as string, |
|
||||
notifyUrl: payeeConfigurations.GetOrDefault("notify_url") as string |
|
||||
?? _configuration["App:SelfUrl"].EnsureEndsWith('/') + "WeChatPay/Notify", |
|
||||
tradeType: inputExtraProperties.GetOrDefault("trade_type") as string, |
|
||||
productId: null, |
|
||||
limitPay: payeeConfigurations.GetOrDefault("limit_pay") as string, |
|
||||
openId: openId, |
|
||||
subOpenId: null, |
|
||||
receipt: payeeConfigurations.GetOrDefault("receipt") as string ?? "N", |
|
||||
sceneInfo: null); |
|
||||
|
|
||||
var xml = result.SelectSingleNode("xml") ?? throw new UnifiedOrderFailedException(); |
|
||||
|
|
||||
if (xml.SelectSingleNode("return_code")?.InnerText != "SUCCESS") |
|
||||
{ |
|
||||
throw new UnifiedOrderFailedException(xml.SelectSingleNode("return_code")?.InnerText, xml.SelectSingleNode("return_msg")?.InnerText); |
|
||||
} |
|
||||
|
|
||||
if (xml.SelectSingleNode("result_code")?.InnerText != "SUCCESS") |
|
||||
{ |
|
||||
throw new UnifiedOrderFailedException(xml.SelectSingleNode("return_code")?.InnerText, |
|
||||
xml.SelectSingleNode("return_msg")?.InnerText, xml.SelectSingleNode("err_code_des")?.InnerText, |
|
||||
xml.SelectSingleNode("err_code")?.InnerText); |
|
||||
} |
|
||||
|
|
||||
payment.SetProperty("trade_type", xml.SelectSingleNode("trade_type")?.InnerText); |
|
||||
payment.SetProperty("prepay_id", xml.SelectSingleNode("prepay_id")?.InnerText); |
|
||||
payment.SetProperty("code_url", xml.SelectSingleNode("code_url")?.InnerText); |
|
||||
|
|
||||
return await _paymentRepository.UpdateAsync(payment, true); |
|
||||
} |
|
||||
|
|
||||
private static int ConvertDecimalToWeChatPayFee(decimal paymentActualPaymentAmount) |
|
||||
{ |
|
||||
return Convert.ToInt32(decimal.Round(paymentActualPaymentAmount, 2, MidpointRounding.AwayFromZero) * 100); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,12 +0,0 @@ |
|||||
using Volo.Abp; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
public class XmlDocumentMissingRequiredElementException : BusinessException |
|
||||
{ |
|
||||
public XmlDocumentMissingRequiredElementException(string elementTag) : base( |
|
||||
message: $"XmlDocument missing required element: {elementTag}") |
|
||||
{ |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,3 +0,0 @@ |
|||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|
||||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|
||||
</Weavers> |
|
||||
@ -1,30 +0,0 @@ |
|||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
||||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|
||||
<xs:element name="Weavers"> |
|
||||
<xs:complexType> |
|
||||
<xs:all> |
|
||||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|
||||
<xs:complexType> |
|
||||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:all> |
|
||||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:schema> |
|
||||
@ -1,19 +0,0 @@ |
|||||
<Project Sdk="Microsoft.NET.Sdk"> |
|
||||
|
|
||||
<Import Project="..\..\common.props" /> |
|
||||
|
|
||||
<PropertyGroup> |
|
||||
<TargetFramework>netstandard2.0</TargetFramework> |
|
||||
<RootNamespace /> |
|
||||
</PropertyGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<PackageReference Include="Volo.Abp.EntityFrameworkCore" Version="2.7.0" /> |
|
||||
<ProjectReference Include="..\EasyAbp.EShop.Payments.WeChatPay.Domain\EasyAbp.EShop.Payments.WeChatPay.Domain.csproj" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<Folder Include="EasyAbp\EShop\Payments\WeChatPay" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
</Project> |
|
||||
@ -1,23 +0,0 @@ |
|||||
using Microsoft.Extensions.DependencyInjection; |
|
||||
using Volo.Abp.EntityFrameworkCore; |
|
||||
using Volo.Abp.Modularity; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore |
|
||||
{ |
|
||||
[DependsOn( |
|
||||
typeof(EShopPaymentsWeChatPayDomainModule), |
|
||||
typeof(AbpEntityFrameworkCoreModule) |
|
||||
)] |
|
||||
public class EShopPaymentsWeChatPayEntityFrameworkCoreModule : AbpModule |
|
||||
{ |
|
||||
public override void ConfigureServices(ServiceConfigurationContext context) |
|
||||
{ |
|
||||
context.Services.AddAbpDbContext<WeChatPayDbContext>(options => |
|
||||
{ |
|
||||
/* Add custom repositories here. Example: |
|
||||
* options.AddRepository<Question, EfCoreQuestionRepository>(); |
|
||||
*/ |
|
||||
}); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,13 +0,0 @@ |
|||||
using Volo.Abp.Data; |
|
||||
using Volo.Abp.EntityFrameworkCore; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore |
|
||||
{ |
|
||||
[ConnectionStringName(WeChatPayDbProperties.ConnectionStringName)] |
|
||||
public interface IWeChatPayDbContext : IEfCoreDbContext |
|
||||
{ |
|
||||
/* Add DbSet for each Aggregate Root here. Example: |
|
||||
* DbSet<Question> Questions { get; } |
|
||||
*/ |
|
||||
} |
|
||||
} |
|
||||
@ -1,27 +0,0 @@ |
|||||
using Microsoft.EntityFrameworkCore; |
|
||||
using Volo.Abp.Data; |
|
||||
using Volo.Abp.EntityFrameworkCore; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore |
|
||||
{ |
|
||||
[ConnectionStringName(WeChatPayDbProperties.ConnectionStringName)] |
|
||||
public class WeChatPayDbContext : AbpDbContext<WeChatPayDbContext>, IWeChatPayDbContext |
|
||||
{ |
|
||||
/* Add DbSet for each Aggregate Root here. Example: |
|
||||
* public DbSet<Question> Questions { get; set; } |
|
||||
*/ |
|
||||
|
|
||||
public WeChatPayDbContext(DbContextOptions<WeChatPayDbContext> options) |
|
||||
: base(options) |
|
||||
{ |
|
||||
|
|
||||
} |
|
||||
|
|
||||
protected override void OnModelCreating(ModelBuilder builder) |
|
||||
{ |
|
||||
base.OnModelCreating(builder); |
|
||||
|
|
||||
builder.ConfigureEShopWeChatPay(); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,43 +0,0 @@ |
|||||
using System; |
|
||||
using Microsoft.EntityFrameworkCore; |
|
||||
using Volo.Abp; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore |
|
||||
{ |
|
||||
public static class WeChatPayDbContextModelCreatingExtensions |
|
||||
{ |
|
||||
public static void ConfigureEShopWeChatPay( |
|
||||
this ModelBuilder builder, |
|
||||
Action<WeChatPayModelBuilderConfigurationOptions> optionsAction = null) |
|
||||
{ |
|
||||
Check.NotNull(builder, nameof(builder)); |
|
||||
|
|
||||
var options = new WeChatPayModelBuilderConfigurationOptions( |
|
||||
WeChatPayDbProperties.DbTablePrefix, |
|
||||
WeChatPayDbProperties.DbSchema |
|
||||
); |
|
||||
|
|
||||
optionsAction?.Invoke(options); |
|
||||
|
|
||||
/* Configure all entities here. Example: |
|
||||
|
|
||||
builder.Entity<Question>(b => |
|
||||
{ |
|
||||
//Configure table & schema name
|
|
||||
b.ToTable(options.TablePrefix + "Questions", options.Schema); |
|
||||
|
|
||||
b.ConfigureByConvention(); |
|
||||
|
|
||||
//Properties
|
|
||||
b.Property(q => q.Title).IsRequired().HasMaxLength(QuestionConsts.MaxTitleLength); |
|
||||
|
|
||||
//Relations
|
|
||||
b.HasMany(question => question.Tags).WithOne().HasForeignKey(qt => qt.QuestionId); |
|
||||
|
|
||||
//Indexes
|
|
||||
b.HasIndex(q => q.CreationTime); |
|
||||
}); |
|
||||
*/ |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,18 +0,0 @@ |
|||||
using JetBrains.Annotations; |
|
||||
using Volo.Abp.EntityFrameworkCore.Modeling; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore |
|
||||
{ |
|
||||
public class WeChatPayModelBuilderConfigurationOptions : AbpModelBuilderConfigurationOptions |
|
||||
{ |
|
||||
public WeChatPayModelBuilderConfigurationOptions( |
|
||||
[NotNull] string tablePrefix = "", |
|
||||
[CanBeNull] string schema = null) |
|
||||
: base( |
|
||||
tablePrefix, |
|
||||
schema) |
|
||||
{ |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,3 +0,0 @@ |
|||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|
||||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|
||||
</Weavers> |
|
||||
@ -1,30 +0,0 @@ |
|||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
||||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|
||||
<xs:element name="Weavers"> |
|
||||
<xs:complexType> |
|
||||
<xs:all> |
|
||||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|
||||
<xs:complexType> |
|
||||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:all> |
|
||||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:schema> |
|
||||
@ -1,15 +0,0 @@ |
|||||
<Project Sdk="Microsoft.NET.Sdk"> |
|
||||
|
|
||||
<Import Project="..\..\common.props" /> |
|
||||
|
|
||||
<PropertyGroup> |
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework> |
|
||||
<RootNamespace /> |
|
||||
</PropertyGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<PackageReference Include="Volo.Abp.Http.Client" Version="2.7.0" /> |
|
||||
<ProjectReference Include="..\EasyAbp.EShop.Payments.WeChatPay.Application.Contracts\EasyAbp.EShop.Payments.WeChatPay.Application.Contracts.csproj" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
</Project> |
|
||||
@ -1,22 +0,0 @@ |
|||||
using Microsoft.Extensions.DependencyInjection; |
|
||||
using Volo.Abp.Http.Client; |
|
||||
using Volo.Abp.Modularity; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
[DependsOn( |
|
||||
typeof(EShopPaymentsWeChatPayApplicationContractsModule), |
|
||||
typeof(AbpHttpClientModule))] |
|
||||
public class EShopPaymentsWeChatPayHttpApiClientModule : AbpModule |
|
||||
{ |
|
||||
public const string RemoteServiceName = "WeChatPay"; |
|
||||
|
|
||||
public override void ConfigureServices(ServiceConfigurationContext context) |
|
||||
{ |
|
||||
context.Services.AddHttpClientProxies( |
|
||||
typeof(EShopPaymentsWeChatPayApplicationContractsModule).Assembly, |
|
||||
RemoteServiceName |
|
||||
); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,3 +0,0 @@ |
|||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|
||||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|
||||
</Weavers> |
|
||||
@ -1,30 +0,0 @@ |
|||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
||||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|
||||
<xs:element name="Weavers"> |
|
||||
<xs:complexType> |
|
||||
<xs:all> |
|
||||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|
||||
<xs:complexType> |
|
||||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:all> |
|
||||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:schema> |
|
||||
@ -1,16 +0,0 @@ |
|||||
<Project Sdk="Microsoft.NET.Sdk"> |
|
||||
|
|
||||
<Import Project="..\..\common.props" /> |
|
||||
|
|
||||
<PropertyGroup> |
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework> |
|
||||
<RootNamespace /> |
|
||||
</PropertyGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<PackageReference Include="EasyAbp.Abp.WeChat.Pay.HttpApi" Version="1.0.3" /> |
|
||||
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="2.7.0" /> |
|
||||
<ProjectReference Include="..\EasyAbp.EShop.Payments.WeChatPay.Application.Contracts\EasyAbp.EShop.Payments.WeChatPay.Application.Contracts.csproj" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
</Project> |
|
||||
@ -1,36 +0,0 @@ |
|||||
using EasyAbp.Abp.WeChat.Pay.HttpApi; |
|
||||
using Localization.Resources.AbpUi; |
|
||||
using EasyAbp.EShop.Payments.WeChatPay.Localization; |
|
||||
using Volo.Abp.AspNetCore.Mvc; |
|
||||
using Volo.Abp.Localization; |
|
||||
using Volo.Abp.Modularity; |
|
||||
using Microsoft.Extensions.DependencyInjection; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
[DependsOn( |
|
||||
typeof(EShopPaymentsWeChatPayApplicationContractsModule), |
|
||||
typeof(AbpAspNetCoreMvcModule), |
|
||||
typeof(AbpWeChatPayHttpApiModule) |
|
||||
)] |
|
||||
public class EShopPaymentsWeChatPayHttpApiModule : AbpModule |
|
||||
{ |
|
||||
public override void PreConfigureServices(ServiceConfigurationContext context) |
|
||||
{ |
|
||||
PreConfigure<IMvcBuilder>(mvcBuilder => |
|
||||
{ |
|
||||
mvcBuilder.AddApplicationPartIfNotExists(typeof(EShopPaymentsWeChatPayHttpApiModule).Assembly); |
|
||||
}); |
|
||||
} |
|
||||
|
|
||||
public override void ConfigureServices(ServiceConfigurationContext context) |
|
||||
{ |
|
||||
Configure<AbpLocalizationOptions>(options => |
|
||||
{ |
|
||||
options.Resources |
|
||||
.Get<WeChatPayResource>() |
|
||||
.AddBaseTypes(typeof(AbpUiResource)); |
|
||||
}); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,13 +0,0 @@ |
|||||
using EasyAbp.EShop.Payments.WeChatPay.Localization; |
|
||||
using Volo.Abp.AspNetCore.Mvc; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
public abstract class WeChatPayController : AbpController |
|
||||
{ |
|
||||
protected WeChatPayController() |
|
||||
{ |
|
||||
LocalizationResource = typeof(WeChatPayResource); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,3 +0,0 @@ |
|||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|
||||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|
||||
</Weavers> |
|
||||
@ -1,30 +0,0 @@ |
|||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
||||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|
||||
<xs:element name="Weavers"> |
|
||||
<xs:complexType> |
|
||||
<xs:all> |
|
||||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|
||||
<xs:complexType> |
|
||||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:all> |
|
||||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:schema> |
|
||||
@ -1,19 +0,0 @@ |
|||||
<Project Sdk="Microsoft.NET.Sdk"> |
|
||||
|
|
||||
<Import Project="..\..\common.props" /> |
|
||||
|
|
||||
<PropertyGroup> |
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework> |
|
||||
<RootNamespace /> |
|
||||
</PropertyGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<PackageReference Include="Volo.Abp.MongoDB" Version="2.7.0" /> |
|
||||
<ProjectReference Include="..\EasyAbp.EShop.Payments.WeChatPay.Domain\EasyAbp.EShop.Payments.WeChatPay.Domain.csproj" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<Folder Include="EasyAbp\EShop\Payments\WeChatPay" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
</Project> |
|
||||
@ -1,23 +0,0 @@ |
|||||
using Microsoft.Extensions.DependencyInjection; |
|
||||
using Volo.Abp.Modularity; |
|
||||
using Volo.Abp.MongoDB; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.MongoDB |
|
||||
{ |
|
||||
[DependsOn( |
|
||||
typeof(EShopPaymentsWeChatPayDomainModule), |
|
||||
typeof(AbpMongoDbModule) |
|
||||
)] |
|
||||
public class EShopPaymentsWeChatPayMongoDbModule : AbpModule |
|
||||
{ |
|
||||
public override void ConfigureServices(ServiceConfigurationContext context) |
|
||||
{ |
|
||||
context.Services.AddMongoDbContext<WeChatPayMongoDbContext>(options => |
|
||||
{ |
|
||||
/* Add custom repositories here. Example: |
|
||||
* options.AddRepository<Question, MongoQuestionRepository>(); |
|
||||
*/ |
|
||||
}); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,13 +0,0 @@ |
|||||
using Volo.Abp.Data; |
|
||||
using Volo.Abp.MongoDB; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.MongoDB |
|
||||
{ |
|
||||
[ConnectionStringName(WeChatPayDbProperties.ConnectionStringName)] |
|
||||
public interface IWeChatPayMongoDbContext : IAbpMongoDbContext |
|
||||
{ |
|
||||
/* Define mongo collections here. Example: |
|
||||
* IMongoCollection<Question> Questions { get; } |
|
||||
*/ |
|
||||
} |
|
||||
} |
|
||||
@ -1,20 +0,0 @@ |
|||||
using Volo.Abp.Data; |
|
||||
using Volo.Abp.MongoDB; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.MongoDB |
|
||||
{ |
|
||||
[ConnectionStringName(WeChatPayDbProperties.ConnectionStringName)] |
|
||||
public class WeChatPayMongoDbContext : AbpMongoDbContext, IWeChatPayMongoDbContext |
|
||||
{ |
|
||||
/* Add mongo collections here. Example: |
|
||||
* public IMongoCollection<Question> Questions => Collection<Question>(); |
|
||||
*/ |
|
||||
|
|
||||
protected override void CreateModel(IMongoModelBuilder modelBuilder) |
|
||||
{ |
|
||||
base.CreateModel(modelBuilder); |
|
||||
|
|
||||
modelBuilder.ConfigureEShopWeChatPay(); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,22 +0,0 @@ |
|||||
using System; |
|
||||
using Volo.Abp; |
|
||||
using Volo.Abp.MongoDB; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.MongoDB |
|
||||
{ |
|
||||
public static class WeChatPayMongoDbContextExtensions |
|
||||
{ |
|
||||
public static void ConfigureEShopWeChatPay( |
|
||||
this IMongoModelBuilder builder, |
|
||||
Action<AbpMongoModelBuilderConfigurationOptions> optionsAction = null) |
|
||||
{ |
|
||||
Check.NotNull(builder, nameof(builder)); |
|
||||
|
|
||||
var options = new WeChatPayMongoModelBuilderConfigurationOptions( |
|
||||
WeChatPayDbProperties.DbTablePrefix |
|
||||
); |
|
||||
|
|
||||
optionsAction?.Invoke(options); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,14 +0,0 @@ |
|||||
using JetBrains.Annotations; |
|
||||
using Volo.Abp.MongoDB; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.MongoDB |
|
||||
{ |
|
||||
public class WeChatPayMongoModelBuilderConfigurationOptions : AbpMongoModelBuilderConfigurationOptions |
|
||||
{ |
|
||||
public WeChatPayMongoModelBuilderConfigurationOptions( |
|
||||
[NotNull] string collectionPrefix = "") |
|
||||
: base(collectionPrefix) |
|
||||
{ |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,3 +0,0 @@ |
|||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|
||||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|
||||
</Weavers> |
|
||||
@ -1,30 +0,0 @@ |
|||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
||||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|
||||
<xs:element name="Weavers"> |
|
||||
<xs:complexType> |
|
||||
<xs:all> |
|
||||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|
||||
<xs:complexType> |
|
||||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:all> |
|
||||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:schema> |
|
||||
@ -1,57 +0,0 @@ |
|||||
using Microsoft.AspNetCore.Mvc.RazorPages; |
|
||||
using Microsoft.Extensions.DependencyInjection; |
|
||||
using EasyAbp.EShop.Payments.WeChatPay.Localization; |
|
||||
using Volo.Abp.AspNetCore.Mvc.Localization; |
|
||||
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; |
|
||||
using Volo.Abp.AutoMapper; |
|
||||
using Volo.Abp.Modularity; |
|
||||
using Volo.Abp.UI.Navigation; |
|
||||
using Volo.Abp.VirtualFileSystem; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.Web |
|
||||
{ |
|
||||
[DependsOn( |
|
||||
typeof(EShopPaymentsWeChatPayHttpApiModule), |
|
||||
typeof(AbpAspNetCoreMvcUiThemeSharedModule), |
|
||||
typeof(AbpAutoMapperModule) |
|
||||
)] |
|
||||
public class EShopPaymentsWeChatPayWebModule : AbpModule |
|
||||
{ |
|
||||
public override void PreConfigureServices(ServiceConfigurationContext context) |
|
||||
{ |
|
||||
context.Services.PreConfigure<AbpMvcDataAnnotationsLocalizationOptions>(options => |
|
||||
{ |
|
||||
options.AddAssemblyResource(typeof(WeChatPayResource), typeof(EShopPaymentsWeChatPayWebModule).Assembly); |
|
||||
}); |
|
||||
|
|
||||
PreConfigure<IMvcBuilder>(mvcBuilder => |
|
||||
{ |
|
||||
mvcBuilder.AddApplicationPartIfNotExists(typeof(EShopPaymentsWeChatPayWebModule).Assembly); |
|
||||
}); |
|
||||
} |
|
||||
|
|
||||
public override void ConfigureServices(ServiceConfigurationContext context) |
|
||||
{ |
|
||||
Configure<AbpNavigationOptions>(options => |
|
||||
{ |
|
||||
options.MenuContributors.Add(new WeChatPayMenuContributor()); |
|
||||
}); |
|
||||
|
|
||||
Configure<AbpVirtualFileSystemOptions>(options => |
|
||||
{ |
|
||||
options.FileSets.AddEmbedded<EShopPaymentsWeChatPayWebModule>("EasyAbp.EShop.Payments.WeChatPay.Web"); |
|
||||
}); |
|
||||
|
|
||||
context.Services.AddAutoMapperObjectMapper<EShopPaymentsWeChatPayWebModule>(); |
|
||||
Configure<AbpAutoMapperOptions>(options => |
|
||||
{ |
|
||||
options.AddMaps<EShopPaymentsWeChatPayWebModule>(validate: true); |
|
||||
}); |
|
||||
|
|
||||
Configure<RazorPagesOptions>(options => |
|
||||
{ |
|
||||
//Configure authorization.
|
|
||||
}); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,42 +0,0 @@ |
|||||
<Project Sdk="Microsoft.NET.Sdk.Web"> |
|
||||
|
|
||||
<Import Project="..\..\common.props" /> |
|
||||
|
|
||||
<PropertyGroup> |
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework> |
|
||||
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> |
|
||||
<IsPackable>true</IsPackable> |
|
||||
<OutputType>Library</OutputType> |
|
||||
<RootNamespace>EasyAbp.EShop.Payments.WeChatPay.Web</RootNamespace> |
|
||||
</PropertyGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<PackageReference Include="Volo.Abp.AutoMapper" Version="2.7.0" /> |
|
||||
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared" Version="2.7.0" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<ProjectReference Include="..\EasyAbp.EShop.Payments.WeChatPay.HttpApi\EasyAbp.EShop.Payments.WeChatPay.HttpApi.csproj" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<EmbeddedResource Include="Pages\**\*.cshtml" /> |
|
||||
<EmbeddedResource Include="Pages\**\*.css" /> |
|
||||
<EmbeddedResource Include="Pages\**\*.js" /> |
|
||||
<EmbeddedResource Include="wwwroot\**\*.*" /> |
|
||||
<Content Remove="Pages\**\*.cshtml" /> |
|
||||
<Content Remove="Pages\**\*.css" /> |
|
||||
<Content Remove="Pages\**\*.js" /> |
|
||||
<Content Remove="wwwroot\**\*.*" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<Content Remove="Properties\launchSettings.json" /> |
|
||||
<None Include="Properties\launchSettings.json" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<Folder Include="wwwroot\" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
</Project> |
|
||||
@ -1,3 +0,0 @@ |
|||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|
||||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|
||||
</Weavers> |
|
||||
@ -1,30 +0,0 @@ |
|||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
||||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|
||||
<xs:element name="Weavers"> |
|
||||
<xs:complexType> |
|
||||
<xs:all> |
|
||||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|
||||
<xs:complexType> |
|
||||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:all> |
|
||||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:schema> |
|
||||
@ -1,7 +0,0 @@ |
|||||
@page |
|
||||
@inherits EasyAbp.EShop.Payments.WeChatPay.Web.Pages.WeChatPayPage |
|
||||
@model EasyAbp.EShop.Payments.WeChatPay.Web.Pages.EShop.Payments.WeChatPay.IndexModel |
|
||||
@{ |
|
||||
} |
|
||||
<h1>WeChatPay</h1> |
|
||||
<p>A sample page for the WeChatPay module.</p> |
|
||||
@ -1,9 +0,0 @@ |
|||||
namespace EasyAbp.EShop.Payments.WeChatPay.Web.Pages.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
public class IndexModel : WeChatPayPageModel |
|
||||
{ |
|
||||
public void OnGet() |
|
||||
{ |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,4 +0,0 @@ |
|||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers |
|
||||
@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI |
|
||||
@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bootstrap |
|
||||
@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bundling |
|
||||
@ -1,16 +0,0 @@ |
|||||
using Microsoft.AspNetCore.Mvc.Localization; |
|
||||
using Microsoft.AspNetCore.Mvc.Razor.Internal; |
|
||||
using EasyAbp.EShop.Payments.WeChatPay.Localization; |
|
||||
using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.Web.Pages |
|
||||
{ |
|
||||
/* Inherit your UI Pages from this class. To do that, add this line to your Pages (.cshtml files under the Page folder): |
|
||||
* @inherits EasyAbp.EShop.Payments.WeChatPay.Web.Pages.WeChatPayPage |
|
||||
*/ |
|
||||
public abstract class WeChatPayPage : AbpPage |
|
||||
{ |
|
||||
[RazorInject] |
|
||||
public IHtmlLocalizer<WeChatPayResource> L { get; set; } |
|
||||
} |
|
||||
} |
|
||||
@ -1,16 +0,0 @@ |
|||||
using EasyAbp.EShop.Payments.WeChatPay.Localization; |
|
||||
using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.Web.Pages |
|
||||
{ |
|
||||
/* Inherit your PageModel classes from this class. |
|
||||
*/ |
|
||||
public abstract class WeChatPayPageModel : AbpPageModel |
|
||||
{ |
|
||||
protected WeChatPayPageModel() |
|
||||
{ |
|
||||
LocalizationResourceType = typeof(WeChatPayResource); |
|
||||
ObjectMapperContext = typeof(EShopPaymentsWeChatPayWebModule); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,27 +0,0 @@ |
|||||
{ |
|
||||
"iisSettings": { |
|
||||
"windowsAuthentication": false, |
|
||||
"anonymousAuthentication": true, |
|
||||
"iisExpress": { |
|
||||
"applicationUrl": "http://localhost:56993/", |
|
||||
"sslPort": 0 |
|
||||
} |
|
||||
}, |
|
||||
"profiles": { |
|
||||
"IIS Express": { |
|
||||
"commandName": "IISExpress", |
|
||||
"launchBrowser": true, |
|
||||
"environmentVariables": { |
|
||||
"ASPNETCORE_ENVIRONMENT": "Development" |
|
||||
} |
|
||||
}, |
|
||||
"EasyAbp.EShop.Payments.WeChatPay.Web": { |
|
||||
"commandName": "Project", |
|
||||
"launchBrowser": true, |
|
||||
"environmentVariables": { |
|
||||
"ASPNETCORE_ENVIRONMENT": "Development" |
|
||||
}, |
|
||||
"applicationUrl": "http://localhost:56994/" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,23 +0,0 @@ |
|||||
using System.Threading.Tasks; |
|
||||
using Volo.Abp.UI.Navigation; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.Web |
|
||||
{ |
|
||||
public class WeChatPayMenuContributor : IMenuContributor |
|
||||
{ |
|
||||
public async Task ConfigureMenuAsync(MenuConfigurationContext context) |
|
||||
{ |
|
||||
if (context.Menu.Name == StandardMenus.Main) |
|
||||
{ |
|
||||
await ConfigureMainMenu(context); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
private Task ConfigureMainMenu(MenuConfigurationContext context) |
|
||||
{ |
|
||||
//Add main menu items.
|
|
||||
|
|
||||
return Task.CompletedTask; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,14 +0,0 @@ |
|||||
using AutoMapper; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.Web |
|
||||
{ |
|
||||
public class WeChatPayWebAutoMapperProfile : Profile |
|
||||
{ |
|
||||
public WeChatPayWebAutoMapperProfile() |
|
||||
{ |
|
||||
/* You can configure your AutoMapper mapping configuration here. |
|
||||
* Alternatively, you can split your mapping configurations |
|
||||
* into multiple profile classes for a better organization. */ |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,13 +0,0 @@ |
|||||
using Volo.Abp.Modularity; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
[DependsOn( |
|
||||
typeof(EShopPaymentsWeChatPayApplicationModule), |
|
||||
typeof(EShopPaymentsWeChatPayDomainTestModule) |
|
||||
)] |
|
||||
public class EShopPaymentsWeChatPayApplicationTestModule : AbpModule |
|
||||
{ |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
@ -1,16 +0,0 @@ |
|||||
<Project Sdk="Microsoft.NET.Sdk"> |
|
||||
|
|
||||
<Import Project="..\..\common.props" /> |
|
||||
|
|
||||
<PropertyGroup> |
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework> |
|
||||
<RootNamespace /> |
|
||||
</PropertyGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<ProjectReference Include="..\..\src\EasyAbp.EShop.Payments.WeChatPay.Application\EasyAbp.EShop.Payments.WeChatPay.Application.csproj" /> |
|
||||
<ProjectReference Include="..\EasyAbp.EShop.Payments.WeChatPay.Domain.Tests\EasyAbp.EShop.Payments.WeChatPay.Domain.Tests.csproj" /> |
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
</Project> |
|
||||
@ -1,3 +0,0 @@ |
|||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|
||||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|
||||
</Weavers> |
|
||||
@ -1,30 +0,0 @@ |
|||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
||||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|
||||
<xs:element name="Weavers"> |
|
||||
<xs:complexType> |
|
||||
<xs:all> |
|
||||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|
||||
<xs:complexType> |
|
||||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:all> |
|
||||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:schema> |
|
||||
@ -1,10 +0,0 @@ |
|||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
/* Inherit from this class for your application layer tests. |
|
||||
* See SampleAppService_Tests for example. |
|
||||
*/ |
|
||||
public abstract class WeChatPayApplicationTestBase : WeChatPayTestBase<EShopPaymentsWeChatPayApplicationTestModule> |
|
||||
{ |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
@ -1,17 +0,0 @@ |
|||||
using EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore; |
|
||||
using Volo.Abp.Modularity; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
/* Domain tests are configured to use the EF Core provider. |
|
||||
* You can switch to MongoDB, however your domain tests should be |
|
||||
* database independent anyway. |
|
||||
*/ |
|
||||
[DependsOn( |
|
||||
typeof(EShopPaymentsWeChatPayEntityFrameworkCoreTestModule) |
|
||||
)] |
|
||||
public class EShopPaymentsWeChatPayDomainTestModule : AbpModule |
|
||||
{ |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
@ -1,15 +0,0 @@ |
|||||
<Project Sdk="Microsoft.NET.Sdk"> |
|
||||
|
|
||||
<Import Project="..\..\common.props" /> |
|
||||
|
|
||||
<PropertyGroup> |
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework> |
|
||||
<RootNamespace /> |
|
||||
</PropertyGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" /> |
|
||||
<ProjectReference Include="..\EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore.Tests\EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore.Tests.csproj" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
</Project> |
|
||||
@ -1,3 +0,0 @@ |
|||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|
||||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|
||||
</Weavers> |
|
||||
@ -1,30 +0,0 @@ |
|||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|
||||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|
||||
<xs:element name="Weavers"> |
|
||||
<xs:complexType> |
|
||||
<xs:all> |
|
||||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|
||||
<xs:complexType> |
|
||||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:all> |
|
||||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|
||||
<xs:annotation> |
|
||||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|
||||
</xs:annotation> |
|
||||
</xs:attribute> |
|
||||
</xs:complexType> |
|
||||
</xs:element> |
|
||||
</xs:schema> |
|
||||
@ -1,10 +0,0 @@ |
|||||
namespace EasyAbp.EShop.Payments.WeChatPay |
|
||||
{ |
|
||||
/* Inherit from this class for your domain layer tests. |
|
||||
* See SampleManager_Tests for example. |
|
||||
*/ |
|
||||
public abstract class WeChatPayDomainTestBase : WeChatPayTestBase<EShopPaymentsWeChatPayDomainTestModule> |
|
||||
{ |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
@ -1,19 +0,0 @@ |
|||||
<Project Sdk="Microsoft.NET.Sdk"> |
|
||||
|
|
||||
<Import Project="..\..\common.props" /> |
|
||||
|
|
||||
<PropertyGroup> |
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework> |
|
||||
<RootNamespace /> |
|
||||
</PropertyGroup> |
|
||||
|
|
||||
<ItemGroup> |
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" /> |
|
||||
<PackageReference Include="Microsoft.Data.Sqlite" Version="3.1.0" /> |
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.0" /> |
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="3.1.0" /> |
|
||||
<ProjectReference Include="..\..\src\EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore\EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore.csproj" /> |
|
||||
<ProjectReference Include="..\EasyAbp.EShop.Payments.WeChatPay.TestBase\EasyAbp.EShop.Payments.WeChatPay.TestBase.csproj" /> |
|
||||
</ItemGroup> |
|
||||
|
|
||||
</Project> |
|
||||
@ -1,41 +0,0 @@ |
|||||
using Microsoft.Data.Sqlite; |
|
||||
using Microsoft.EntityFrameworkCore; |
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure; |
|
||||
using Microsoft.EntityFrameworkCore.Storage; |
|
||||
using Volo.Abp.EntityFrameworkCore; |
|
||||
using Volo.Abp.Modularity; |
|
||||
|
|
||||
namespace EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore |
|
||||
{ |
|
||||
[DependsOn( |
|
||||
typeof(EShopPaymentsWeChatPayTestBaseModule), |
|
||||
typeof(EShopPaymentsWeChatPayEntityFrameworkCoreModule) |
|
||||
)] |
|
||||
public class EShopPaymentsWeChatPayEntityFrameworkCoreTestModule : AbpModule |
|
||||
{ |
|
||||
public override void ConfigureServices(ServiceConfigurationContext context) |
|
||||
{ |
|
||||
var sqliteConnection = CreateDatabaseAndGetConnection(); |
|
||||
|
|
||||
Configure<AbpDbContextOptions>(options => |
|
||||
{ |
|
||||
options.Configure(abpDbContextConfigurationContext => |
|
||||
{ |
|
||||
abpDbContextConfigurationContext.DbContextOptions.UseSqlite(sqliteConnection); |
|
||||
}); |
|
||||
}); |
|
||||
} |
|
||||
|
|
||||
private static SqliteConnection CreateDatabaseAndGetConnection() |
|
||||
{ |
|
||||
var connection = new SqliteConnection("Data Source=:memory:"); |
|
||||
connection.Open(); |
|
||||
|
|
||||
new WeChatPayDbContext( |
|
||||
new DbContextOptionsBuilder<WeChatPayDbContext>().UseSqlite(connection).Options |
|
||||
).GetService<IRelationalDatabaseCreator>().CreateTables(); |
|
||||
|
|
||||
return connection; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,10 +0,0 @@ |
|||||
namespace EasyAbp.EShop.Payments.WeChatPay.EntityFrameworkCore |
|
||||
{ |
|
||||
/* This class can be used as a base class for EF Core integration tests, |
|
||||
* while SampleRepository_Tests uses a different approach. |
|
||||
*/ |
|
||||
public abstract class WeChatPayEntityFrameworkCoreTestBase : WeChatPayTestBase<EShopPaymentsWeChatPayEntityFrameworkCoreTestModule> |
|
||||
{ |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
@ -1,3 +0,0 @@ |
|||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|
||||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|
||||
</Weavers> |
|
||||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue