1. github 下载,4.1版本,运行, install时,会让你新增后台账户密码,sql服务器

2. 在Configuration 新增Language

3. 上传中文语言包 , 你也可以先导出语言包,再编辑,不过导出xml的压缩过,你要格式化一下(http://web.chacuo.net/formatxml)

自带的英文语言包在这个路径(\Presentation\Nop.Web\App_Data\Localization\defaultResources.nopres.xml)

4. Configuration->plugin  访问这个页面要翻墙, 不然会request timeout

安装alipay 插件.其他原有的插件要重新卸载安装一次,不然 _localizationService.AddOrUpdatePluginLocaleResource 只有默认的英文.

或者自己在[dbo].[LocaleStringResource] 这里自行修改.

5. 支付宝插件安装之后,付款时有2个问题:

. 主货币不是人民币时,比如是欧元, 我15.9欧的价格,支付时是显示15.9元人民币; 另一张订单118人民币的价格,转到支付宝里也变成15.9元; 

解决方案:网站标价为欧元,用欧元和人民币支付. 正确设置方法应该是:后台货币管理里把USD作为 primary exchange rate currency, 把欧元作为 Mark as primary store currency,同时把RMB的状态改为Publish
. NOP支付宝插件的MD5值是大写,但支付宝接口要求的md5值是小写的.另外测试时发现有时签名错误,有时签名又是正确的. mygod, 错误时生成的md5不是32位. 是少了1位.这个要改一下代码
        internal string GetMD5(string input)
{
var md5 = new MD5CryptoServiceProvider();
var t = md5.ComputeHash(Encoding.GetEncoding(InputCharset).GetBytes(input));
var sb = new StringBuilder(); foreach (var b in t)
{
sb.AppendFormat("{0:x2}", b);
} return sb.ToString();
}

6. 微信支付, github只找到3.7版本的.没有4.10版本的.  需要改的地方蛮多的. 比如这个 WeChatPayPaymentProcessor 要增加这个方法

      public override string GetConfigurationPageUrl()
{
return $"{_webHelper.GetStoreLocation()}Admin/PaymentWeChatPay/Configure";
}

7. 微信支付在公众号后台需要配置,如果你商城是用二级域名, 网页授权域名就不能配一级域名

网页授权域名
shop.xxx.com

微信支付商户后台需要配置

公众号支付: 支付授权目录: 

http://shop.xxx.com/Plugins/PaymentWeChatPay/

扫码支付 扫码回调链接:

http://shop.xxx.com/Plugins/PaymentWeChatPay/

微信支付插件代码修改

        public WxPayData UnifiedOrder(Order order, IDictionary<string, string> values)
{
var fullValues = new Dictionary<string, string>(values);
var bodyText = $"支付【{_storeContext.CurrentStore.Name}】订单 #{order.Id}";
fullValues["body"] = bodyText;
fullValues["attach"] = _storeContext.CurrentStore.Name;
fullValues["device_info"] = "WEB";
fullValues["out_trade_no"] = order.Id.ToString(); decimal CurrencyRate = order.CurrencyRate; if (order.CustomerCurrencyCode == "EUR")
{
CurrencyRate = ; //HardCode
}
fullValues["total_fee"] = Math.Round(order.OrderTotal * CurrencyRate * ).ToString(); //微信支付以分为单位 return this.PostApiRequest(WeixinUnifiedOrderUrl, fullValues);
}

NOP 后台的Product Attribute 可以自定义Color,Size等属性. 反而Specification没什么用,只是页面展示一个表格.

Nop 4.1版本已经迁移到.net core2.1版本的更多相关文章

  1. 将 Net 项目升级 Core项目经验:(三)迁移后的Net Standard版本的类库测试和多平台项目实测

    迁移后的Net Standard版本的类库测试和多平台项目实测 按照第一步的方法,添加一个Net Core的MSTest项目,然后将原来的测试项目下的代码迁移到新测试 项目中,然后引用新的Beyond ...

  2. ArcGIS Server较早版本切片迁移注意事项

    原创文章,转载须标明出处自: http://www.cnblogs.com/gisspace/p/8286838.html -------------------------------------- ...

  3. SVN仓库连同版本信息迁移新服务器的步骤

    SVN仓库连同版本信息迁移新服务器的步骤 步骤一:导出(1)链接原服务器,找到SVN Server安装路径下的bin文件,并复制文件路径,如 C:\Program File\SVN Server\bi ...

  4. .Net Framework下对Dapper二次封装迁移到.Net Core2.0遇到的问题以及对Dapper的封装介绍

    今天成功把.Net Framework下使用Dapper进行封装的ORM成功迁移到.Net Core 2.0上,在迁移的过程中也遇到一些很有意思的问题,值得和大家分享一下.下面我会还原迁移的每一个过程 ...

  5. 一步一步带你做WebApi迁移ASP.NET Core2.0

    随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的ASP.NET WebApi站点,就可以跨平台运行在Linux中.我们有必要先说一下ASP.NET Core. ASP ...

  6. Slickflow.NET 开源工作流引擎基础介绍(九) -- .NET Core2.0 版本实现介绍

    前言:.NET Core 是.NET Framework的新一代版本,是微软开发的第一个跨平台 (Windows.Mac OSX.Linux) 的应用程序开发框架(Application Framew ...

  7. Slickflow.NET 开源工作流引擎基础介绍-.NET Core2.0 版本实现介绍 (转)

    前言:.NET Core 是.NET Framework的新一代版本,是微软开发的第一个跨平台 (Windows.Mac OSX.Linux) 的应用程序开发框架(Application Framew ...

  8. WebApi迁移ASP.NET Core2.0

    WebApi迁移ASP.NET Core2.0 一步一步带你做WebApi迁移ASP.NET Core2.0   随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的AS ...

  9. .Net Core技术研究-WebApi迁移ASP.NET Core2.0

    随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的ASP.NET WebApi站点,就可以跨平台运行在Linux中.我们有必要先说一下ASP.NET Core. ASP ...

随机推荐

  1. Spring boot2.0 设置文件上传大小限制

    今天把Spring boot版本升级到了2.0后,发现原来的文件上传大小限制设置不起作用了,原来的application.properties设置如下: spring.http.multipart.m ...

  2. 解決 Android Studio 不停 Indexing 的問題(Updating Indices: Indexing paused due to batch update)

    遇到這個問題通常是 IDE 更新後,或是反覆使用 Android Studio 開啟其他專案所導致,解決方法其實非常簡單喔! 点击 這個選項的功用是「清除 IDE 暫存並重啟」,沒錯,會出現上述情形的 ...

  3. python redis 操作

    1.String 操作 redis中的String在在内存中按照一个name对应一个value来存储 set() #在Redis中设置值,默认不存在则创建,存在则修改 r.set('name', 'z ...

  4. go 接口以及对象传递

    // Sample program to show how to use an interface in Go. package main import ( "fmt" ) // ...

  5. 大整数加法 HDU1002

    今天早上没事干又把这个敲了一遍,虽然手冻得不行,不过又深入理解理解还可以哈. 难点就在给你的整数可能很大很长,所以long long 肯定不行,得用字符串来读取存储,然后注意一下相加的时候进位,最后输 ...

  6. python中socket模块详解

    socket模块简介 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket.socket通常被叫做"套接字",用于描述IP地址和端口,是一个通信 ...

  7. (转)UCOSII在任务切换与出入中断时堆栈指针的使用

    1 uc/os ii在M3中的堆栈结构 1.1 M3入账序列  1.2 加上手工入栈序列  2 PendSV在Cortex-M3中的应用 Systick为嵌入到内核中,优先级比一般中断优先级高.若在一 ...

  8. gooreplacer 很好用

    国内上 StackOverflow, hackernews 之类的站点会慢. 因为页面里有链接指向 google 谷歌, 会被墙. 于是拖累了整个页面的显示. gooreplacer 可以把这些被墙连 ...

  9. MySQL Connector/J

    5.1 Developer Guide 1. MysQL为由Java语言编程的客户端程序提供连接:MySQL Connector/J,这是一个实现Java Database Connectivity( ...

  10. Lab 1-4

    Analyze the file Lab01-04.exe. Questions and Short Answers Upload the Lab01-04.exe file to http://ww ...