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;
}
没有合适的资源?快使用搜索试试~ 我知道了~
微信企业付款到银行卡、RSA加密处理【已测试】
共87个文件
cs:49个
aspx:15个
pem:4个
5星 · 超过95%的资源 需积分: 50 112 下载量 121 浏览量
2018-04-12
16:13:21
上传
评论 4
收藏 214KB ZIP 举报
温馨提示
最低丢要2分,本想免费分享的 里面是下载了微信公众号提供的C#源码基础上处理的 GetPublicKey.aspx --------获取RSA加密公钥API;后续接口中需要用到的数据 ToBankFromGzh.aspx ------企业付款到银行卡 ToBankFromGzh_Query.aspx-----查询企业付款到银行卡 分享的主要目的还是因为RSA拖我太多时间了,希望能帮助到各位码友 分享的仅仅只是示例代码 2018.04.12
资源推荐
资源详情
资源评论
收起资源包目录
WxPayAPI - 副本.zip (87个子文件)
WxPayAPI - 副本
WxPayAPI
WxPayAPI.csproj 12KB
logs
2015-04-22.log 502B
2015-04-26.log 30KB
2015-04-21.log 3KB
packages.config 139B
WxPayAPI.csproj.user 1KB
lib
HttpService.cs 8KB
Data.cs 9KB
Exception.cs 239B
Log.cs 2KB
Config.cs 2KB
WxPayApi.cs 28KB
Notify.cs 2KB
jsapi_load.txt 6KB
Web.Release.config 1KB
business
RefundQuery.cs 2KB
ResultNotify.cs 3KB
DownloadBill.cs 1KB
Refund.cs 2KB
NativePay.cs 3KB
RSAFromPkcs8.cs 22KB
NativeNotify.cs 4KB
MicroPay.cs 7KB
JsApiPay.cs 11KB
OrderQuery.cs 1KB
rsa_
BufferedCipherTransform.cs 2KB
Scripts
jquery-1.7.1.intellisense.js 150KB
jquery-1.7.1.min.js 92KB
jquery-1.7.1.js 242KB
Properties
AssemblyInfo.cs 1KB
PublishProfiles
WxPayWebConfig.pubxml 840B
WxPayWebConfig.pubxml.user 4KB
example
NativeNotifyPage.aspx.cs 444B
MicroPayPage.aspx.designer.cs 2KB
MicroPayPage.aspx.cs 2KB
NativePayPage.aspx 865B
MakeQRCode.aspx.designer.cs 799B
ToBankFromGzh.aspx.designer.cs 817B
NativePayPage.aspx.cs 1KB
NativeNotifyPage.aspx 423B
JsApiPayPage.aspx.cs 2KB
RefundPage.aspx.designer.cs 2KB
ProductPage.aspx 3KB
MakeQRCode.aspx 411B
ProductPage.aspx.designer.cs 2KB
DownloadBillPage.aspx.cs 1KB
MakeQRCode.aspx.cs 1KB
ProductPage.aspx.cs 3KB
GetPublicKey.aspx.designer.cs 816B
MicroPayPage.aspx 1KB
RefundPage.aspx.cs 2KB
ToBankFromGzh.aspx.cs 3KB
JsApiPayPage.aspx.designer.cs 807B
example.lnk 985B
ToBankFromGzh_Query.aspx 2KB
OrderQueryPage.aspx.designer.cs 1KB
NativePayPage.aspx.designer.cs 1KB
DownloadBillPage.aspx.designer.cs 1KB
ToBankFromGzh_Query.aspx.cs 947B
ToBankFromGzh.aspx 2KB
DownloadBillpage.aspx 1KB
ResultNotifyPage.aspx.designer.cs 805B
OrderQueryPage.aspx.cs 1KB
RefundQueryPage.aspx 2KB
NativeNotifyPage.aspx.designer.cs 805B
ResultNotifyPage.aspx 423B
ToBankFromGzh_Query.aspx.designer.cs 823B
RefundPage.aspx 2KB
RefundQueryPage.aspx.cs 2KB
RefundQueryPage.aspx.designer.cs 2KB
JsApiPayPage.aspx 2KB
GetPublicKey.aspx 2KB
GetPublicKey.aspx.cs 607B
ResultNotifyPage.aspx.cs 451B
OrderQueryPage.aspx 1KB
cert
test.pem 458B
apiclient_cert.pem 2KB
证书使用说明.txt 2KB
rsa_public.pem 432B
apiclient_cert.p12 3KB
apiclient_key.pem 2KB
Web.Debug.config 1KB
default.aspx.cs 426B
default.aspx.designer.cs 465B
App_Data
Default.aspx 3KB
bin
Web.config 2KB
WxPayAPI.sln 989B
共 87 条
- 1
u011010407
- 粉丝: 7
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页