C 呼叫支付寶介面案例

2021-08-25 14:30:24 字數 3426 閱讀 9807

/// /// 頁面跳轉同步通知頁面

///

///

public actionresult payresult()

'", out_trade_no);

objtrade = db.sql(strsql).querysingle();

strsql = string.format(@"select username from t_user where id=", objtrade.userid);

viewbag.username = db.sql(strsql).querysingle();}}

return view(objtrade);

}

///    /// 伺服器非同步通知頁面

///

///

[allowanonymous]

public actionresult paynotify()

else//驗證失敗

}else

return view();

}

public bool verifypay(string strouttradeno, string strtradeno, string strtradestatus)

'", strouttradeno);

t_trade objtrade = dbhelper.querydb().sql(strsql).querysingle();

if (strtradestatus == "trade_finished" || strtradestatus == "trade_success")

bres = true;

}else if (strtradestatus == "trade_closed")

bres = false;

}return bres;

}

/// /// 獲取支付寶get過來通知訊息,並以「引數名=引數值」的形式組成陣列

///

/// request回來的資訊組成的陣列

public sorteddictionarygetrequestget()

return sarray;

}/// /// 獲取支付寶post過來通知訊息,並以「引數名=引數值」的形式組成陣列

///

/// request回來的資訊組成的陣列

public sorteddictionarygetrequestpost()

return sarray;

}

/// /// 提交支付請求到支付寶

///

public actionresult posttoalipay(int id)

and state=2", uid);

//如果已經支付過則跳轉到首頁

if (db.sql(strsql).querysingle() > 0)

//查詢沒有支付的訂單

strsql = string.format(@"select * from t_trade where userid= and state=0", uid);

var objtrade = db.sql(strsql).querysingle();

//支付型別,1為商品購買

string payment_type = "1";

//伺服器非同步通知頁面路徑,需http://格式的完整路徑,不能加?id=123這類自定義引數

string notify_url = "";

//string notify_url = "";

//頁面跳轉同步通知頁面路徑,需http://格式的完整路徑,不能加?id=123這類自定義引數,不能寫成http://localhost/

string return_url = "";

//string return_url = "";

//商戶訂單號,商戶**訂單系統中唯一訂單號,必填

string out_trade_no = objtrade == null ? guid.newguid().tostring("n").trim() : objtrade.id;

//訂單名稱,必填

string subject = "會員資格";

//付款金額,必填

string total_fee = "200.00";

//string total_fee = "0.01";

string it_b_pay = "30m";

//防釣魚時間戳,若要使用請呼叫類檔案submit中的query_timestamp函式

//string anti_phishing_key = com.alipay.submit.query_timestamp();

//string exter_invoke_ip = "";

//把請求引數打包成陣列

sorteddictionarysparatemp = new sorteddictionary();

sparatemp.add("partner", config.partner);

sparatemp.add("seller_email", config.seller_email);

sparatemp.add("_input_charset", config.input_charset.tolower());

sparatemp.add("service", "create_direct_pay_by_user");

sparatemp.add("payment_type", payment_type);

sparatemp.add("notify_url", notify_url);

sparatemp.add("return_url", return_url);

sparatemp.add("out_trade_no", out_trade_no);

sparatemp.add("subject", subject);

sparatemp.add("total_fee", total_fee);

sparatemp.add("it_b_pay", it_b_pay);

"body", body);

"show_url", show_url);

"anti_phishing_key", anti_phishing_key);

"exter_invoke_ip", exter_invoke_ip);

//建立請求

string shtmltext = submit.buildrequest(sparatemp, "get", "確認");

if (objtrade == null)

else

}else

return null;

}

支付寶介面

支付寶的介面呼叫很不方便,剛做好乙個封裝,實現了虛擬交易和實物交易。解決方案中有三個專案以及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...