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", "1");

         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

 

請求參數說明

更新時間:2016/05/31                         訪問次數:143285                    
 

                

請求參數是商戶在與支付寶進行數據交互時,提供給支付寶的請求數據,以便支付寶根據這些數據進一步處理。

參數

參數名稱

類型(字節長度)

參數說明

是否可為空

樣例

基本參數

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是以2088開頭的純16位數字。
  • seller_email是支付寶登錄賬號,格式一般是郵箱或手機號。
  • seller_account_name是賣家支付寶賬號別名。

三個參數至少必須傳遞一個。

當簽約賬號就是收款賬號時,請務必使用參數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是以2088開頭的純16位數字。
  • buyer_email是支付寶登錄賬號,格式一般是郵箱或手機號。
  • buyer_account_name是買家支付寶賬號別名。

三個參數的優先級別是: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

取值范圍:

  • creditPay(信用支付)
  • directPay(余額支付)

如果不設置,默認識別為余額支付。

說明:

必須注意區分大小寫。

可空

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種:

  • 0:訂單碼-簡約前置模式,對應iframe寬度不能小於600px,高度不能小於300px;
  • 1:訂單碼-前置模式,對應iframe寬度不能小於300px,高度不能小於600px;
  • 3:訂單碼-迷你前置模式,對應iframe寬度不能小於75px,高度不能小於75px。
  • 4:訂單碼-可定義寬度的嵌入式二維碼,商戶可根據需要設定二維碼的大小。

跳轉模式下,用戶的掃碼界面是由支付寶生成的,不在商戶的域名下。

  • 2:訂單碼-跳轉模式

可空

1

qrcode_width

商戶自定二維碼寬度

Integer

商戶自定義的二維碼寬度。

當qr_pay_mode=4時,該參數生效。

可空 200

need_buyer_realnamed

是否需要買家實名認證

String(2)

是否需要買家實名認證。

  • T表示需要買家實名認證;
  • 不傳或者傳其它值表示不需要買家實名認證。
可空  T

promo_param

商戶優惠活動參數

String(128)

商戶與支付寶約定的營銷透傳參數。

可空 {"customer201412":"Y","goods201412":"Y"}

hb_fq_param

花唄分期參數

String

參數格式:hb_fq_seller_percent ^賣家承擔付費比例|hb_fq_num ^期數。

  • hb_fq_num:花唄分期數,比如分3期支付;
  • hb_fq_seller_percent:賣家承擔收費比例,比如100代表賣家承擔100%。

兩個參數必須一起傳入。

兩個參數用“|”間隔。Key和value之間用“^”間隔。

具體花唄分期期數和賣家承擔收費比例可傳入的數值請咨詢支付寶。

可空 hb_fq_seller_percent^100|hb_fq_num^3

goods_type

商品類型

String(2)

商品類型:

  • 1表示實物類商品
  • 0表示虛擬類商品

如果不傳,默認為實物類商品。

可空 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&notify_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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM