一.简介

nop通过插件机制可以支持更多的支付扩展,我们通过编写支持退款的支付宝插件来更好的理解支付插件的扩展。

先分享下支付宝插件源码点击下载,由于时间原因,本篇只介绍使用该插件,下一篇结合插件进行代码分析。

      注意:测试时将项目部署在公网,这样才能接收来自支付宝的回调通知,否则无法接收支付宝回调会导致订单状态无法处理。

二.插件使用

1.将插件DaBoLang.Nop.Plugin.Payments.AliPay项目放置在“nopCommerce_3.90_Source\Plugins”目录下

2. 如果缺少引用可以通过NuGet安装,打开【工具】【NuGet 包管理器】【程序包管理器控制台】,输入下边命令,更新包

Update-Package -ProjectName 'DaBoLang.Nop.Plugin.Payments.AliPay'  -Reinstall

3.编译后文件会保存在“nopCommerce_3.90_Source\Presentation\Nop.Web\Plugins\DaBoLang.Payments.AliPay”文件加下如下图:

4.【后台管理】【插件管理】【本地插件】选择支付宝插件,点击安装。安装成功后点击编辑勾选已启用。

5.找到插件,点击配置按钮进入配置。

6.登录支付宝开放平台,找到PID和MD5秘钥如下图。

卖方邮箱填入收款支付宝邮箱,Key填入MD5秘钥,Partner填入PID,额外费用为0(表示没有额外费用),点击保存。

7.如果为多店,可点击多店设置,可为多店铺进行个性化配置(单店无该选项)。选中后可进行定制配置,如下图将商城A的额外费用设置成10,在商城A中选择该插件付款时加收10元额外费用。

8.在订单结算时选中支付宝支付。

9.确认后调到支付宝界面进行付款。

10.扫码支付成功后会跳入指定的重定向地址。这时后台查看该订单。支付状态已变成已付款。

11.点击查看进入订单,可以看到付款状态有四个按钮。

【退款】 点击使用支付插件【全额退款】,会到支付宝页面退款。

【全额退款(线下)】 只是改变订单付款状态为“退款”,使用场景如:线下通过现金方式给顾客已经退款了。

【部分退款(线上)】 部分退款,设置退款金额,在支付宝页面进行退款。

【部分退款(线下)】 部分退款,同【全额退款(线上)】一样只改变订单付款状太,不使用插件机制退款。

特别注意只有【退款】【部分退款(线上)】两种方式才会调用插件来进行处理。

如果你发现这四个按钮名字不对,是因为语言配置不同,可以通过语言管理来修改以下资源:

admin.orders.fields.refund 为 退款

admin.orders.fields.refundoffline 为 全额退款(线下)

admin.orders.fields.partialrefund 为 部分退款(线上)

admin.orders.fields.partialrefundoffline 为 部分退款(线下)

11.如果点击【部分退款(线上)】,则弹出退款金额对话框,输入退款金额,点击下边退款按钮,跳到支付宝页面。

12.在支付宝退款页面输入支付宝密码就可以完成退款了。

13.再查看该订单,退款金额已经为0.06元,并且付款状态为部分退款。这时候还可以点击部分退款,直到退款都完成。

最后介绍下项目目录如下:

  • Alipay  支付宝即时到账相关
  • Controllers 控制器文件夹
  • Data    数据库相关
  • Domain 实体类
  • Models  模型
  • Services  服务接口
  • Views  视图
  • AliPayPaymentProcessor.cs   支付插件实现类
  • AliPayPaymentSettings.cs     支付宝即时到账配置类
  • DependencyRegistrar.cs     依赖注入扩展类
  • Description.txt   插件描述文件
  • RouteProvider.cs    路由注册类

等大波浪有时间把下篇补上,感谢支持,如果您觉得有用请分享。

本文地址:http://www.cnblogs.com/yaoshangjin/p/7273795.html

本文为大波浪原创、转载请注明出处。

nopCommerce 3.9 大波浪系列 之 可退款的支付宝插件(上)的更多相关文章

  1. nopCommerce 3.9 大波浪系列 之 可退款的支付宝插件(下)

    一.回顾 支付宝插件源码下载地址:点击下载 上篇介绍了使用支付宝插件进行支付,全额退款,部分退款还有插件的多店铺配置,本文介绍下如何实现的. 二.前期准备 插件主要有3个功能: 多店铺插件配置 支付功 ...

  2. nopCommerce 3.9 大波浪系列 之 网页加载Widgets插件原理

    一.插件简介 插件用于扩展nopCommerce的功能.nopCommerce有几种类型的插件如:支付.税率.配送方式.小部件等(接口如下图),更多插件可以访问nopCommerce官网. 我们看下后 ...

  3. nopCommerce 3.9 大波浪系列 之 微信公众平台登录插件

    一.简介 插件源码下载:点击下载 微信公众平台网站授权帮助地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp142114084 ...

  4. nopCommerce 3.9 大波浪系列 之 引擎 NopEngine

    本章涉及到的内容如下 1.EngineContext初始化IEngine实例 2.Autofac依赖注入初始化 3.AutoMapper框架初始化 4.启动任务初始化 一.EngineContext初 ...

  5. nopCommerce 3.9 大波浪系列 之 使用Redis主从高可用缓存

    一.概述 nop支持Redis作为缓存,Redis出众的性能在企业中得到了广泛的应用.Redis支持主从复制,HA,集群. 一般来说,只有一台Redis是不可行的,原因如下: 单台Redis服务器会发 ...

  6. nopCommerce 3.9 大波浪系列 之 使用部署在Docker中的Redis缓存主从服务

    一.概述 nop支持Redis作为缓存,Redis出众的性能在企业中得到了广泛的应用.Redis支持主从复制,HA,集群. 一般来说,只有一台Redis是不可行的,原因如下: 单台Redis服务器会发 ...

  7. nopCommerce 3.9 大波浪系列 之 global.asax

    一.nop的global.asax文件 nop3.9基于ASP.NET MVC 5框架开发,而ASP.NET MVC中global.asax文件包含全局应用程序事件的事件处理程序,它响应应用程序级别和 ...

  8. nopCommerce 3.9 大波浪系列 之 IWebHelper

    接口:Nop.Core.IWebHelper 实现:Nop.Core.WebHelper 测试:Nop.Core.Tests.WebHelperTests 简介:Web辅助类 功能:获取客户端IP地址 ...

  9. nopCommerce 3.9 大波浪系列 之 汉化-Roxy Fileman

    官网:http://www.roxyfileman.com/ 中文包:zh.json 1.将zh.json包拷贝到Nop.Admin项目中"Content\Roxy_Fileman\lang ...

随机推荐

  1. 深入理解 JavaScript 事件循环(一)— event loop

    引言 相信所有学过 JavaScript 都知道它是一门单线程的语言,这也就意味着 JS 无法进行多线程编程,但是 JS 当中却有着无处不在的异步概念 .在初期许多人会把异步理解成类似多线程的编程模式 ...

  2. Linux 程序,进程和线程

    进程如何使用内存. 当程序文件运行为进程时, 进程在内存中获得空间. 1) Text : 固定大小 存储指令(instruction), 说明每一步的操作. 2) Global Data : 固定大小 ...

  3. Rest模式get,put,post,delete含义与区别(转)

    POST   /uri     创建 DELETE /uri/xxx 删除 PUT    /uri/xxx 更新或创建 GET    /uri/xxx 查看 GET操作是安全的.所谓安全是指不管进行多 ...

  4. 百度地图 js api 实现 line 居中显示

    项目中有个需求需要在百度地图的中心显示画的线,以前用过mapPanto这个方法,传入坐标就可以将地图平移到这个坐标,不过不知道如何获取线的中心点,看了别人的代码,有以下两个函数可以实现这个功能 get ...

  5. 论文笔记 Generative Face Completion

    这篇paper将巧妙地将四个loss函数结合在一起,其中每一个loss的功能不同.但这篇paper不够elegant的地方也是loss太多!在本文中,我采用散文的写作方法谈谈自己对这篇paper的理解 ...

  6. Java+XSL合并多个XML文件

    使用 Java 解析 XML 文件有许多成熟的工具,如 dom4j 等等.但在一些场景中,我们可能使用 Ant.Maven 等构建工具对多个 XML 文件进行合并,我们希望可以直接通过脚本文件,或者简 ...

  7. 淘宝tairKV分布式

    Tair是什么 Tair是由淘宝开发的key/value方案,系统默认支持基于内存和文件的存储引擎,对应于通常我们所说的缓存和持久化存储,这里可以获取更多关于tair的信息,淘宝团队介绍,Tair在淘 ...

  8. 鼠标滚轮图片放大缩小功能,使用layer弹框后不起作用

    今天在项目中遇到的一个问题:点击按钮使用layer弹框弹出一张图片,需要加一个鼠标滚轮放大缩小,图片也跟着放大缩小的功能.于是在网上找了一个demo. DEMO: <!DOCTYPE html ...

  9. 【Android Developers Training】 77. 使用Wi-Fi P2P进行服务搜索

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  10. 【PHP】震惊,一张图详解递归函数!!!!

    在PHP学习中,递归函数是一个非常重要也是非常难以理解的部分,本博文将通过一张图尽可能演示这个过程,不对之处还请指出