nopCommerce 3.9 之 開發支付寶即時到賬插件,支持支付、全額退款、部分退款、支持多店鋪設置。 ...
一.簡介
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
本文為大波浪原創、轉載請註明出處。