NopCommerce Alipay 支付插件
NopCommerce Alipay 支付插件
1.查找及下载NopCommerce Alipay插件
http://www.nopcommerce.com/p/963/alipay-payment-module-nopcommerce-team.aspx

2.解压并添加到项目
按照Readme.txt
1. 'Nop.Plugin.Payments.AliPay' directory contains source code.
2. 'Payments.AliPay' contains binaries. Just drop it into \Plugins directory on your server.
将相应的3.80文件夹下的文件 放置指定位置
Payments.AliPay -》 nopCommerce_3.80\Presentation\Nop.Web\Plugins
Nop.Plugin.Payments.AliPay -》nopCommerce_3.80\Plugins
在解决方案的Plugins Add Existing Item
Nop.Plugin.Payments.AliPay.AliPayPaymentProcessor
/// <summary>
/// Post process payment (used by payment gateways that require redirecting to a third-party URL)
/// </summary>
/// <param name="postProcessPaymentRequest">Payment info required for an order processing</param>
public void PostProcessPayment(PostProcessPaymentRequest postProcessPaymentRequest)
{
//string gateway = "https://www.alipay.com/cooperate/gateway.do?";
var sellerEmail = _aliPayPaymentSettings.SellerEmail;
var key = _aliPayPaymentSettings.Key;
var partner = _aliPayPaymentSettings.Partner;
var outTradeNo = postProcessPaymentRequest.Order.Id.ToString();
var subject = _storeContext.CurrentStore.Name;
var body = "Order from " + _storeContext.CurrentStore.Name;
var totalFee = postProcessPaymentRequest.Order.OrderTotal.ToString("0.00", CultureInfo.InvariantCulture);
var notifyUrl = _webHelper.GetStoreLocation(false) + "Plugins/PaymentAliPay/Notify";
var returnUrl = _webHelper.GetStoreLocation(false) + "Plugins/PaymentAliPay/Return";
string[] para ={
"service=" + Service,
"partner=" + partner,
"seller_email=" + sellerEmail,
"out_trade_no=" + outTradeNo,
"subject=" + subject,
"body=" + body,
"total_fee=" + totalFee,
"show_url=" + ShowUrl,
"payment_type=1",
"notify_url=" + notifyUrl,
"return_url=" + returnUrl,
"_input_charset=" + InputCharset
};
var aliayUrl = CreatUrl(para, InputCharset, key);
var post = new RemotePost
{
FormName = "alipaysubmit",
Url = "https://www.alipay.com/cooperate/gateway.do?_input_charset=utf-8",
Method = "POST"
};
post.Add("service", Service);
post.Add("partner", partner);
post.Add("seller_email", sellerEmail);
post.Add("out_trade_no", outTradeNo);
post.Add("subject", subject);
post.Add("body", body);
post.Add("total_fee", totalFee);
post.Add("show_url", ShowUrl);
post.Add("return_url", returnUrl);
post.Add("notify_url", notifyUrl);
post.Add("payment_type", "");
post.Add("sign", aliayUrl);
post.Add("sign_type", SignType);
post.Post();
}
Alipay请求参数说明
https://doc.open.alipay.com/doc2/detail?treeId=62&articleId=103740&docType=1
解决方案 Clean 和 Rebuild
运行站点
3.安装插件
Admin -> Configuration -> Plugins -> Local plugins

4.配置插件
Admin -> Configuration -> Payment -> Payment methods -> Configure


aliPay_partner:商户PID
aliPay_seller:商户支付宝
aliPay_rsaPriKey:生成的private_key
aliPay_rsaPubKey:生成的public_key
http://docs.apicloud.com/Client-API/Open-SDK/aliPay
https://doc.open.alipay.com/doc2/detail?treeId=62&articleId=103740&docType=1
配置信息将保存在Setting表中

5.启用插件
Admin -> Configuration -> Payment -> Payment methods -> Edit
6.前台查看

附 Alipay请求参数说明
https://doc.open.alipay.com/doc2/detail?treeId=62&articleId=103740&docType=1
请求参数说明
请求参数是商户在与支付宝进行数据交互时,提供给支付宝的请求数据,以便支付宝根据这些数据进一步处理。
|
参数 |
参数名称 |
类型(字节长度) |
参数说明 |
是否可为空 |
样例 |
|
基本参数 |
|||||
|
service |
接口名称 |
String |
接口名称。 |
不可空 |
create_direct_pay_by_user |
|
partner |
合作者身份ID |
String(16) |
签约的支付宝账号对应的支付宝唯一用户号。 以2088开头的16位纯数字组成。 |
不可空 |
2088101011913539 |
|
_input_charset |
参数编码字符集 |
String |
商户网站使用的编码格式,如utf-8、gbk、gb2312等。 |
不可空 |
gbk |
|
sign_type |
签名方式 |
String |
DSA、RSA、MD5三个值可选,必须大写。 |
不可空 |
MD5 |
|
sign |
签名 |
String |
请参见本文档“附录:签名与验签”。 |
不可空 |
7d314d22efba4f336fb187697793b9d2 |
|
notify_url |
服务器异步通知页面路径 |
String(190) |
支付宝服务器主动通知商户网站里指定的页面http路径。 |
可空 |
http://api.test.alipay.net/atinterface/receive_return.htm |
|
return_url |
页面跳转同步通知页面路径 |
String(200) |
支付宝处理完请求后,当前页面自动跳转到商户网站里指定页面的http路径。 |
可空 |
http://api.test.alipay.net/atinterface/receive_return.htm |
|
业务参数 |
|||||
|
out_trade_no |
商户网站唯一订单号 |
String(64) |
支付宝合作商户网站唯一订单号。 |
不可空 |
6843192280647118 |
|
subject |
商品名称 |
String(256) |
商品的标题/交易标题/订单标题/订单关键字等。 该参数最长为128个汉字。 |
不可空 |
贝尔金护腕式 |
|
payment_type |
支付类型 |
String(4) |
只支持取值为1(商品购买)。 |
不可空 |
1 |
|
total_fee |
交易金额 |
Number |
该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。 |
不可空 |
100 |
|
seller_id |
卖家支付宝用户号 |
String(16) |
三个参数至少必须传递一个。 当签约账号就是收款账号时,请务必使用参数seller_id,即seller_id的值与partner的值相同。 三个参数的优先级别是:seller_id>seller_account_name>seller_email。 |
不可空 |
2088002007018966 |
|
seller_email |
卖家支付宝账号 |
String(100) |
alipay-test01@alipay.com |
||
|
seller_account_name |
卖家支付宝账号别名 |
String(100) |
tstable02@alipay.com |
||
|
buyer_id |
买家支付宝用户号 |
String(16) |
三个参数的优先级别是:buyer_id>buyer_account_name>buyer_email。 |
可空 |
2088002007018955 |
|
buyer_email |
买家支付宝账号 |
String(100) |
tstable01@alipay.com |
||
|
buyer_account_name |
买家支付宝账号别名 |
String(100) |
tstable03@alipay.com |
||
|
price |
商品单价 |
Number |
单位为:RMB Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。此参数为单价 规则:price、quantity能代替total_fee。即存在total_fee,就不能存在price和quantity;存在price、quantity,就不能存在total_fee。 |
可空 |
10.00 |
|
quantity |
购买数量 |
Number |
price、quantity能代替total_fee。即存在total_fee,就不能存在price和quantity;存在price、quantity,就不能存在total_fee。 |
可空 |
1 |
|
body |
商品描述 |
String(1000) |
对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。 |
可空 |
美国专业护腕鼠标垫,舒缓式凝胶软垫模拟手腕的自然曲线和运动,创造和缓的GelFlex舒适地带! |
|
show_url |
商品展示网址 |
String(400) |
收银台页面上,商品展示的超链接。 |
可空 |
http://www.360buy.com/product/113714.html |
|
paymethod |
默认支付方式 |
String |
取值范围:
如果不设置,默认识别为余额支付。 说明: 必须注意区分大小写。 |
可空 |
directPay |
|
enable_paymethod |
支付渠道 |
String |
用于控制收银台支付渠道显示,该值的取值范围请参见支付渠道。 可支持多种支付渠道显示,以“^”分隔。 |
可空 |
directPay^bankPay^cartoon^cash |
|
anti_phishing_key |
防钓鱼时间戳 |
String |
通过时间戳查询接口获取的加密支付宝系统时间戳。 如果已申请开通防钓鱼时间戳验证,则此字段必填。 |
可空 |
587FE3D2858E6B01E30104656E7805E2 |
|
exter_invoke_ip |
客户端IP |
String(15) |
用户在创建交易时,该用户当前所使用机器的IP。 如果商户申请后台开通防钓鱼IP地址检查选项,此字段必填,校验用。 |
可空 |
128.214.222.111 |
|
extra_common_param |
公用回传参数 |
String(100) |
如果用户请求时传递了该参数,则返回给商户时会回传该参数。 |
可空 |
你好,这是测试商户的广告。 |
|
it_b_pay |
超时时间 |
String |
设置未付款交易的超时时间,一旦超时,该笔交易就会自动被关闭。 取值范围:1m~15d。 m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点,如1.5h,可转换为90m。 |
可空 |
1h |
|
token |
快捷登录授权令牌 |
String(40) |
如果开通了快捷登录产品,则需要填写;如果没有开通,则为空。 |
可空 |
201103290c9f9f2c03db4267a4c8e1bfe3adfd52 |
|
qr_pay_mode |
扫码支付方式 |
String(1) |
扫码支付的方式,支持前置模式和跳转模式。 前置模式是将二维码前置到商户的订单确认页的模式。需要商户在自己的页面中以iframe方式请求支付宝页面。具体分为以下3种:
跳转模式下,用户的扫码界面是由支付宝生成的,不在商户的域名下。
|
可空 |
1 |
|
qrcode_width |
商户自定二维码宽度 |
Integer |
商户自定义的二维码宽度。 当qr_pay_mode=4时,该参数生效。 |
可空 | 200 |
|
need_buyer_realnamed |
是否需要买家实名认证 |
String(2) |
是否需要买家实名认证。
|
可空 | T |
|
promo_param |
商户优惠活动参数 |
String(128) |
商户与支付宝约定的营销透传参数。 |
可空 | {"customer201412":"Y","goods201412":"Y"} |
|
hb_fq_param |
花呗分期参数 |
String |
参数格式:hb_fq_seller_percent ^卖家承担付费比例|hb_fq_num ^期数。
两个参数必须一起传入。 两个参数用“|”间隔。Key和value之间用“^”间隔。 具体花呗分期期数和卖家承担收费比例可传入的数值请咨询支付宝。 |
可空 | hb_fq_seller_percent^100|hb_fq_num^3 |
|
goods_type |
商品类型 |
String(2) |
商品类型:
如果不传,默认为实物类商品。 |
可空 | 1 |
https://mapi.alipay.com/gateway.do?body=%C3%C0%B9%FA%D7%A8%D2%B5%BB%A4%CD%F3%CA%F3%B1%EA%B5%E6%2C%CA%E6%BB%BA%CA%BD%C4%FD%BD%BA%C8%ED%B5%E6%C4%A3%C4%E2%CA%D6%CD%F3%B5%C4%D7%D4%C8%BB%C7%FA%CF%DF%BA%CD%D4%CB%B6%AF%A3%AC%B4%B4%D4%EC%BA%CD%BB%BA%B5%C4GelFlex%CA%E6%CA%CA%B5%D8%B4%F8%21&subject=%B1%B4%B6%FB%BD%F0%BB%A4%CD%F3%CA%BD&sign_type=MD5¬ify_url=http%3A%2F%2Fapi.test.alipay.net&out_trade_no=6741334835157966&return_url=http%3A%2F%2Fapi.test.alipay.net%2Fatinterface%2Freceive_return.htm&sign=dc3d42f405d7e738ab35344449e2d9f7&buyer_id=2088002007018955&total_fee=100&service=create_direct_pay_by_user&partner=2088101568338364&seller_id=2088002007018966&payment_type=1&qr_pay_mode=1&_input_charset=gbk
说明: 本样例仅供参考,支付宝网关为https://mapi.alipay.com/gateway.do。
注意:
- 此接口只支持https请求;
- 参数body(商品描述)、subject(商品名称)、extra_common_param(公用回传参数)不能包含特殊字符(如:#、%、&、+)、敏感词汇,也不能使用外国文字(旺旺不支持的外文,如:韩文、泰语、藏文、蒙古文、阿拉伯语);
- 请按照本文档“附录:签名与验签”中的签名方法对输入参数进行签名,该接口请求才能够被支付宝系统接收;
- 此接口支持重复调用,前提是交易基本信息(买家、卖家、交易金额、超时时间等)在多次调用中保持一致,且交易尚未完成支付;
- 配置qr_pay_mode为0或1或3或4的情况下,同步通知地址return_url需要传入商户中间跳转页面,即该页面需要实现让父页面自行跳转的功能,中间页面javascript代码:<script>window.parent.location.href='父页面调整的URL';</script>
NopCommerce Alipay 支付插件的更多相关文章
- nopCommerce添加支付插件
之前完成了nopCommerce和汉化以及配置,今天继续对nopCommerce的研究,为了能够完成购物,我们就要将伟大的支付宝添加至其中了.支付宝插件下载 将Nop.Plugin.Payments. ...
- nopcommerce 3.6网银在线支付插件(源码)
网银在线支付插件,下载后通过后台插件管理安装.配置即可使用. 下载:网银在线支付插件3.1.3.6版.rar (106.3KB) 源代码放在\Plugins目录下,用vs打开重新生成. 源地址:htt ...
- 如何开发ecshop支付插件
如何开发ecshop支付插件 ecshop模板网 / 2014-06-03 目标一:搞懂ecshop的支付流程 选完商品,进入购物车页面,点击“结算中心”,页面跳转到flow.php?step=che ...
- ionic-cordova 支付宝支付插件cordova-plugin-alipay-v2使用篇
支付宝WS_APP_PAY_SDK_BASE_2.0 <APP支付> 支付宝的cordova插件其实在github上已经有很多了,但是都已经是以前的版本了.在2016年11月的时候支付宝进 ...
- Nopcommerce 项目添加插件
插件是用来扩展nopCommerce功能的.nopCommerce拥有多种类型的插件.例如:支付方式(PayPal),税务机构,送货方式计算方法(UPS, USP, FedEx),小部件(如“在线聊天 ...
- 好用的Magento一步支付插件One Step Checkout免费版
Magento免费版一步支付插件地址:http://www.magentocommerce.com/magento-connect/one-page-checkout.html 直接引用KEY:ht ...
- 微信支付之扫码支付开发:我遇到的坑及解决办法(附:Ecshop 微信支付插件)
前段时间帮一个朋友的基于ecshop开发的商城加入微信扫描支付功能,本以为是很简单的事儿——下载官方sdk或开发帮助文档,按着里面的做就ok了,谁知折腾了两三天的时间才算搞定,中间也带着疑问在网上找了 ...
- WordPress按钮秒支付插件发布,支持微信支付,支付宝,银联,京东,苏宁,易宝支付
痛点: 我们用WordPress建设网站和开发移动应用,有时候我们其实不需要太多的流程,只是需要一个收款通道,但是可能对支持的渠道更加关注,特别是手机应用.所以WordPress按钮秒支付插件诞生了, ...
- WooCommerce微信支付插件免费版下载
WooCommerce微信支付插件免费版下载 2016-05-11 点击:605 免费版来了 免费版终于来了,直接下载用吧,当然免费少一些功能,只有PC扫码支付,没有微信原生支付,没有汇率,没有退款, ...
随机推荐
- ASP.NET MVC自定义验证Authorize Attribute
前几天Insus.NET有在数据库实现过对某一字段进行加密码与解密<使用EncryptByPassPhrase和DecryptByPassPhrase对MS SQLServer某一字段时行加密和 ...
- IE6 IE7 ‘JSON’ 未定义
今天在调试javascript程序,在FireFox和Chrome没有问题,但是在IE中,一些可以,就会出现如标题的错误:‘JSON’ 未定义: 在IE6,IE7一定有此错误,以及IE能设置兼容性视图 ...
- 高效率去掉js数组中重复项
Array类型并没有提供去重复的方法,如果要把数组的重复元素干掉,那得自己想办法: function unique(arr) { var result = [], isRepeated; for (v ...
- deployment与Web应用程序部署
定义用于支持 Web 应用程序部署的配置设置. <deployment retail="true|false" /> retail属性:设置一个值,该值指定是否以发布模 ...
- 异步编程系列第05章 Await究竟做了什么?
p { display: block; margin: 3px 0 0 0; } --> 写在前面 在学异步,有位园友推荐了<async in C#5.0>,没找到中文版,恰巧也想提 ...
- asp.net 301重定向代码
/// <summary> ///重定向代码 /// </summary> /// <param name="sender"></para ...
- C++11之for循环的新用法
C++使用如下方法遍历一个容器: #include "stdafx.h" #include<iostream> #include<vector> int m ...
- [moka同学笔记]七、Yii2.0课程笔记(魏曦老师教程)[新增管理员,重置密码]
- Java02
一.IDE的概念.eclipse的介绍.安装.使用 (用eclipse写HelloWorld例子) 1.什么是IDE(Integrated Development Environment)? ...
- highCharts提示框不显示的问题
使用HighCharts插件进行数据展示的时候,鼠标放在数据处没有提示框,或者只有头尾2个提示框,其他提示框不显示,为什么会这样? 1.查看是否使用了tooltip属性,该属性的enabled默认为t ...