支付寶介面(剛完成,應該是目前最好的了)

2021-04-13 11:54:52 字數 2509 閱讀 2456

支付寶的介面呼叫很不方便,剛做好乙個封裝,實現了虛擬交易和實物交易。

解決方案中有三個專案以及ndoc生成的文件,簡單的序列圖:commonalipay,封裝的支付寶介面。

testali,asp.net的測試專案

testcommonalipay,nunit的測試專案。

呼叫方法:

1、引入commonalipay.dll

2、實現支付寶服務介面的方法呼叫方式:

alipayap= new alipay();

string key = "";//填寫自己的key

string partner = "";//填寫自己的partner

standardgoodsbp= new standardgoods("trade_create_by_buyer", partner, key, "md5", "卡2", guid.newguid().tostring(), 2.551m, 1, "[email protected]", "[email protected]"

", bp, this);上面是通用的呼叫方式。

下面是只支援虛擬貨物的方式:

string key = "";//填寫自己的key

string partner = "";//填寫自己的partner

alipay ap = new alipay();

digitalgoods bp = new digitalgoods("create_digital_goods_trade_p", partner, key, "md5", "卡2", guid.newguid().tostring(), 2.551m, 1, "[email protected]", "[email protected]");

", bp, this);3、實現支付寶通知介面方法的呼叫(支援虛擬和實物):

protected void page_load(object sender, eventargs e)

void ap_waitbuyerpay(object sender, notifyeventargs e)

private void ap_waitsellersendgoods(object sender, notifyeventargs e)

支付寶的交易狀態都被定義成了類似名稱的事件。

部分源**解析:

1、解析forms集合到notifyeventargs類,因為後面此類的資料要用來做md5sign,所以所有值型別,不能存在初始值,如:int的0等。因此用nullable范型。

private notifyeventargs parsenotify(namevaluecollection nv, object obj)

else if (pi.propertytype == typeof(int?))

else if (pi.propertytype == typeof(decimal?))

else if (pi.propertytype == typeof(datetime?))

else if (pi.propertytype == typeof(bool))

else}}

return (notifyeventargs)obj;

}2、從型別中獲取排序後的引數

/**

/// 獲取排序後的引數

///

///

///

private sortedlistgetparam(object obj)

sortedlist.add(pi.name.tolower(), pi.getvalue(obj, null).tostring());}}

return sortedlist;

}3、從sortedlist中產生引數

private string geturlparam(sortedlistsortedlist,bool isencode)

{stringbuilder param = new stringbuilder();

stringbuilder encodeparam = new stringbuilder();

if (isencode == false){

支付寶介面

支付寶的介面呼叫很不方便,剛做好乙個封裝,實現了虛擬交易和實物交易。解決方案中有三個專案以及ndoc生成的文件,簡單的序列圖 commonalipay,封裝的支付寶介面。testali,asp.net的測試專案 testcommonalipay,nunit的測試專案。呼叫方法 1 引入commona...

支付寶介面

解決方案中有三個專案以及ndoc生成的文件,簡單的序列圖 commonalipay,封裝的支付寶介面。testali,asp.net的測試專案 testcommonalipay,nunit的測試專案。呼叫方法 1 引入commonalipay.dll 2 實現支付寶服務介面的方法呼叫方式 alipa...

支付寶介面

解決方案中有三個專案以及ndoc生成的文件,簡單的序列圖 commonalipay,封裝的支付寶介面。testali,asp.net的測試專案 testcommonalipay,nunit的測試專案。呼叫方法 1 引入commonalipay.dll 2 實現支付寶服務介面的方法呼叫方式 alipa...