if (Request.QueryString["code"] == null || Request.QueryString["code"] == "")
{
string host = Request.Url.Host;
string path = Request.Path;
string redirect_uri = HttpUtility.UrlEncode("http://" + host + path);
Log.Debug(this.GetType().ToString(), "Current page URL : " + redirect_uri);
WxPayData data = new WxPayData();
data.SetValue("appid", WxPayConfig.APPID);
data.SetValue("redirect_uri", redirect_uri);
data.SetValue("response_type", "code");
data.SetValue("scope", "snsapi_base");
data.SetValue("state", "STATE" + "#wechat_redirect");
string url = "https://open.weixin.qq.com/connect/oauth2/authorize?" + data.ToUrl();
Log.Debug(this.GetType().ToString(), "Will Redirect to URL : " + url);
Response.Redirect(url);
//System.Environment.Exit(0);
Response.End();
Log.Debug(this.GetType().ToString(), "If print this sentence, it is error!!!");
}
else
{
string code = Request.QueryString["code"];
Log.Debug(this.GetType().ToString(), "Get code : " + code);
//构造获取openid及access_token的url
WxPayData data3 = new WxPayData();
data3.SetValue("appid", WxPayConfig.APPID);
data3.SetValue("secret", WxPayConfig.APPSECRET);
data3.SetValue("code", code);
data3.SetValue("grant_type", "authorization_code");
string url3 = "https://api.weixin.qq.com/sns/oauth2/access_token?" + data3.ToUrl();
//请求url以获取数据
HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url3);
objRequest.Method = "GET";
WebProxy proxy = new WebProxy(); //定义一个网关对象
proxy.Address = new Uri("http://10.152.18.220:8080"); //网关服务器端口:端口
objRequest.Proxy = proxy;
string result = "";
HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()))
{
result = sr.ReadToEnd();
sr.Close();
}
Log.Debug(this.GetType().ToString(), "Get access_token : " + result);
//保存access_token,用于收货地址获取
JsonData jd = JsonMapper.ToObject(result);
string access_token = (string)jd["access_token"];
string openid = (string)jd["openid"];
Log.Debug(this.GetType().ToString(), "Get openid : " + openid);
//统一下单
WxPayData data2 = new WxPayData();
data2.SetValue("body", "test");//
data2.SetValue("attach", "test");
data2.SetValue("out_trade_no", WxPayApi.GenerateOutTradeNo());
data2.SetValue("total_fee", 1);
data2.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss"));
data2.SetValue("time_expire", DateTime.Now.AddMinutes(10).ToString("yyyyMMddHHmmss"));
data2.SetValue("goods_tag", "test");
data2.SetValue("trade_type", "JSAPI");
data2.SetValue("openid", openid);
WxPayData result2 = WxPayApi.UnifiedOrder(data2);
if (!result2.IsSet("appid") || !result2.IsSet("prepay_id") || result2.GetValue("prepay_id").ToString() == "")
{
Log.Error(this.GetType().ToString(), "UnifiedOrder response error!");
throw new WxPayException("UnifiedOrder response error!");
}
WxPayData jsApiParam = new WxPayData();
jsApiParam.SetValue("appId", result2.GetValue("appid"));
jsApiParam.SetValue("timeStamp", WxPayApi.GenerateTimeStamp());
jsApiParam.SetValue("nonceStr", WxPayApi.GenerateNonceStr());
jsApiParam.SetValue("package", "prepay_id=" + result2.GetValue("prepay_id"));
jsApiParam.SetValue("signType", "MD5");
jsApiParam.SetValue("paySign", jsApiParam.MakeSign());
string parameters = jsApiParam.ToJson();
Log.Info(this.GetType().ToString(), "Get jsApiParam : " + parameters);
wxJsApiParam = parameters;
//获取收货地址
string parameter2 = null;
try
{
WxPayData signData = new WxPayData();
signData.SetValue("appid", WxPayConfig.APPID);
signData.SetValue("url", Request.Url.ToString());
signData.SetValue("timestamp", WxPayApi.GenerateTimeStamp());
signData.SetValue("nonce_str", WxPayApi.GenerateNonceStr());
signData.SetValue("accesstoken", access_token);
string param = signData.ToUrl();
Log.Info(this.GetType().ToString(), "GetEditAddressParam param : " + param);
string addrSign = FormsAuthentication.HashPasswordForStoringInConfigFile(param, "SHA1");
WxPayData afterData = new WxPayData();
afterData.SetValue("appId", WxPayConfig.APPID);
afterData.SetValue("scope", "jsapi_address");
afterData.SetValue("signType", "sha1");
afterData.SetValue("addrSign", addrSign);
afterData.SetValue("timeStamp", signData.GetValue("timestamp"));
afterData.SetValue("nonceStr", signData.GetValue("nonce_str"));
parameter2 = afterData.ToJson();
}
catch (Exception ex)
{
Log.Error(this.GetType().ToString(), ex.ToString());
}
Log.Info(this.GetType().ToString(), "Get EditAddressParam : " + parameter2);
wxEditAddrParam = parameter2;
}
没有合适的资源?快使用搜索试试~ 我知道了~
微信支付 api demo 版本,可根据个人实际情况集成自己业务部分。
共98个文件
cs:48个
aspx:12个
dll:8个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 65 浏览量
2022-03-26
22:34:41
上传
评论
收藏 2.41MB RAR 举报
温馨提示
微信支付 api demo 版本,可根据个人实际情况集成自己业务部分。
资源推荐
资源详情
资源评论
收起资源包目录
WxPay.rar (98个子文件)
cs_sdk_v3.0.9
.vs
config
applicationhost.config 84KB
WxPayAPI
v15
.suo 42KB
Server
sqlite3
storage.ide-wal 3.08MB
storage.ide-shm 32KB
storage.ide 4KB
db.lock 0B
xs
UserPrefs.xml 4KB
sqlite3
storage.ide-wal 3.94MB
storage.ide-shm 32KB
storage.ide 792KB
db.lock 0B
WxPayAPI.sln 993B
WxPayAPI
business
MicroPay.cs 7KB
RefundQuery.cs 2KB
DownloadBill.cs 1KB
JsApiPay.cs 11KB
PayBusiness.cs 18KB
WxPayResultNotify.cs 11KB
OrderQuery.cs 1KB
ResultNotify.cs 3KB
NativePay.cs 3KB
Refund.cs 2KB
NativeNotify.cs 4KB
WxPayAPI.csproj 11KB
App_Data
obj
Debug
WxPayAPI.csprojAssemblyReference.cache 86KB
WxPayAPI.pdb 110KB
WxPayAPI.csproj.CopyComplete 0B
DesignTimeResolveAssemblyReferencesInput.cache 9KB
WxPayAPI.csproj.FileListAbsolute.txt 2KB
WxPayAPI.dll 45KB
TempPE
WxPayAPI.csproj.CoreCompileInputs.cache 42B
WxPayAPI.csprojResolveAssemblyReference.cache 62KB
bin
WxPayAPI.pdb 110KB
LitJson.dll 52KB
WxPayAPI.dll 45KB
ThoughtWorks.QRCode.dll 5.92MB
WxPayAPI.dll.config 2KB
Web.config 2KB
Web.Debug.config 1KB
Default.aspx 3KB
third
RestSharp.dll 157KB
LitJson.dll 52KB
ThoughtWorks.QRCode.dll 5.92MB
QuickMark.dll 6KB
Scripts
jquery-1.7.1.js 242KB
jquery-1.7.1.min.js 92KB
jquery-1.7.1.intellisense.js 150KB
example
OrderQueryPage.aspx 1KB
MakeQRCode.aspx.designer.cs 799B
ResultNotifyPage.aspx.cs 451B
MicroPayPage.aspx 1KB
MakeQRCode.aspx 411B
ProductPage.aspx.designer.cs 2KB
RefundQueryPage.aspx 2KB
JsApiPayPage.aspx.designer.cs 807B
DownloadBillpage.aspx 1KB
NativeNotifyPage.aspx.designer.cs 805B
ResultNotifyPage.aspx 423B
DownloadBillPage.aspx.designer.cs 1KB
NativePayPage.aspx.cs 1KB
ResultNotifyPage.aspx.designer.cs 805B
NativePayPage.aspx 865B
NativePayPage.aspx.designer.cs 1KB
JsApiPayPage.aspx.cs 2KB
RefundPage.aspx.cs 2KB
DownloadBillPage.aspx.cs 1KB
MicroPayPage.aspx.designer.cs 2KB
RefundQueryPage.aspx.cs 2KB
ProductPage.aspx.cs 3KB
ProductPage.aspx 3KB
MakeQRCode.aspx.cs 1KB
OrderQueryPage.aspx.designer.cs 1KB
NativeNotifyPage.aspx 423B
JsApiPayPage.aspx 2KB
NativeNotifyPage.aspx.cs 444B
RefundQueryPage.aspx.designer.cs 2KB
RefundPage.aspx 2KB
RefundPage.aspx.designer.cs 2KB
OrderQueryPage.aspx.cs 1KB
MicroPayPage.aspx.cs 2KB
jsapi_load.txt 6KB
lib
Config.cs 609B
SafeXmlDocument.cs 209B
DemoConfig.cs 3KB
Exception.cs 239B
HttpService.cs 8KB
Data.cs 11KB
Notify.cs 2KB
WxOpenidResult.cs 2KB
RandomGenerator.cs 1KB
WxPayApi.cs 29KB
IConfig.cs 2KB
Log.cs 2KB
default.aspx.cs 426B
default.aspx.designer.cs 460B
Web.Release.config 1KB
WxPayAPI.csproj.user 1KB
Properties
AssemblyInfo.cs 1KB
PublishProfiles
共 98 条
- 1
资源评论
ghost123cc
- 粉丝: 142
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功