华为手机专业拍照使用方法P10维修相机多少钱

>> 获取微信用户信息源码(.net)
获取微信用户信息源码(.net)
所属分类:
下载地址:
获取微信用户信息源码文件大小:4.72 kB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
通过网页获得微信OpenID以及用户性别,年龄等信息!!!!
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
447.00 B10-06-14 10:10
1.84 kB21-06-14 16:06
449.00 B10-06-14 15:46
9.79 kB14-07-16 22:59
&获取微信用户信息源码(.net)&0.00 B02-03-16 23:18
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
只是为了赚积分,所以才评论的,真的这是什么鬼,贼烦啊啊啊啊
评价成功,多谢!
下载获取微信用户信息源码
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:116.949ms - init:0.1;find:0.8;t:0.5;tags:0.4;related:57.3;comment:3.2; 27.69
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧微信公众号支付(一)如何获取用户openId
投稿:mdxy-dxy
字体:[ ] 类型:转载 时间:
本篇文章给大家介绍微信公众号支付如何获取用户openid,需要授权回调页面域名等一系列途径实现此功能,需要的朋友可以参考下
一、获取apikey,appsecret与商户号
  注册公众号、商户号
二、获取用户的OpenId
  1.设置【授权回调页面域名】
    官方解释:用户在网页授权页同意授权给公众号后,微信会将授权数据传给一个回调页面,回调页面需在此域名下,以确保安全可靠。回调页面域名不支持IP地址。
      
  2.用户同意授权
    我是把这个url写在微信菜单下的,当进入这个页面的时候就让用户同意。注意:好像是静默授权的,用户不知道
    1.url:
    参数:appid:公众号的唯一标识
       redirect_uri:重定向的url,就是授权后要跳转的页面
       scope:应用授权作用域
          snsapi_base:不弹出授权页面,直接跳转,只能获取用户openid
          snsapi_userinfo:弹出授权页面,可通过openid拿到昵称、性别、所在地
       state:重定向后带的参数
    2.用户同意后会产生一个code,只有分钟时间的有效期。
String code = request.getParameter("code")
    3.code换openId
* @author rory.wu
public class Constants {
// 第三方用户唯一凭证
public static String appid = "";
// 第三方用户唯一凭证密钥
public static String appsecret = "";
public static String mch_id="";
//获取openId
public static String oauth_url = "https://api./sns/oauth/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";
* 通用工具类
* @author rory.wu
* @version .
* @since 年月日
public class CommonUtil {
private static Logger log = Logger.getLogger(CommonUtil.class);
public static JSONObject httpsRequestToJsonObject(String requestUrl, String requestMethod, String outputStr) {
JSONObject jsonObject =
StringBuffer buffer = httpsRequest(requestUrl, requestMethod, outputStr);
jsonObject = JSONObject.fromObject(buffer.toString());
} catch (ConnectException ce) {
log.error("连接超时:"+ce.getMessage());
} catch (Exception e) {
log.error("https请求异常:"+e.getMessage());
return jsonO
private static StringBuffer httpsRequest(String requestUrl, String requestMethod, String output)
throws NoSuchAlgorithmException, NoSuchProviderException, KeyManagementException, MalformedURLException,
IOException, ProtocolException, UnsupportedEncodingException {
URL url = new URL(requestUrl);
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setRequestMethod(requestMethod);
if (null != output) {
OutputStream outputStream = connection.getOutputStream();
outputStream.write(output.getBytes("UTF-"));
outputStream.close();
// 从输入流读取返回内容
InputStream inputStream = connection.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String str =
StringBuffer buffer = new StringBuffer();
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
inputStream =
connection.disconnect();
* 获取用户的openId,并放入session
* @param code 微信返回的code
private void setOpenId(String code) {
session.put("code", code);
String oauth_url = Constants.oauth_url.replace("APPID", Constants.appid).replace("SECRET", Constants.appsecret).replace("CODE", String.valueOf(session.get("code")));
("oauth_url:"+oauth_url);
JSONObject jsonObject = CommonUtil.httpsRequestToJsonObject(oauth_url, "POST", null);
("jsonObject:"+jsonObject);
Object errorCode = jsonObject.get("errcode");
if(errorCode != null) {
("code不合法");
String openId = jsonObject.getString("openid");
("openId:"+openId);
session.put("openId", openId);
oauth_url返回的格式是:
   "access_token":"ACCESS_TOKEN",
   "expires_in":,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID", "scope":"SCOPE",
"unionid": "o_bmasdasdsad_sgVthMZOPfL"
Code无效时:
   "errcode":
   ,"errmsg":"invalid code"
以上内容就是脚本之家的小编给大家分享的微信公众号支付(一)如何获取用户openId,希望大家喜欢。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具2015年4月 荣获微软MVP称号2014年4月 荣获微软MVP称号
2014年12月 企业软件大版内专家分月排行榜第一2014年11月 企业软件大版内专家分月排行榜第一2014年7月 企业软件大版内专家分月排行榜第一2011年10月 企业开发大版内专家分月排行榜第一2011年5月 企业开发大版内专家分月排行榜第一2011年3月 企业开发大版内专家分月排行榜第一2010年12月 企业开发大版内专家分月排行榜第一2010年11月 企业开发大版内专家分月排行榜第一2010年9月 企业开发大版内专家分月排行榜第一2010年8月 企业开发大版内专家分月排行榜第一2010年7月 企业开发大版内专家分月排行榜第一2010年6月 企业开发大版内专家分月排行榜第一2010年5月 企业开发大版内专家分月排行榜第一
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。C#微信支付
  回归主题,16年1月初我对微信开发比较好奇,由于自己是一个比较喜欢钱的人,所以对支付功能颇为冲动,就用公司信息在微信平台申请了一个服务号,还给腾讯打赏了300大洋做了下认证,抽空看了下微信支付官方的文档,大概了解了一下微信支付的流程以及开发过程,说实话,虽然看完了,但是对微信官方提供的文档有些不满,感觉不清不楚的,但是大概的支付方式已经了解,这时候,我的懒劲又来了,在网上找到了做微信对接的C#SDK:Senparc.Weixin.MP。这个类库的封装,在我看来,还是不错的,基本囊货了微信的功能,并且在不断的完善。类库是开源的,每个功能都有写简单的单元测试,看起来一目了然。主要对接DLL对应的功能如下:
  公众号+微信支付 SDK:Senparc.Weixin.MP.dll
  企业号 SDK:Senparc.Weixin.QY.dll
  开放平台 SDK:Senparc.Weixin.Open.dll&
  官方地址: &
  当然,我们要完成公众号微信支付功能的开发,需要使用Senparc.Weixin.MP.dll这个DLL,查阅了一下官方提供的DEMO以及教程,并没有载入微信支付相关的说明,没办法,既然拿到了,自己找吧。
  打开Senparc.Weixin.MP.sln,根据英文文件夹名称的分类,可以初步判断,关于微信支付,被封装在TenPayLib文件夹中,但是我还发现,里面存在名称叫&TenPayLibV3&的文件夹,那如何选择呢?网上搜索了一下,得出这个结论:号之前申请的为v2版,之后申请的为v3版。我用来测试微信支付的服务号是在16年刚申请,并且通过验证的,那么果断使用V3吧。
  打开TenPayLibV3文件夹:
  这里发现多个类库,每一个都是做什么的呢?我们这里不一一叙述,感兴趣的朋友可以下载来看,每一个类的文件头都有功能说明与描述,对照微信官方支付说明,我们直接开始做支付。
  进入微信公众号,点击功能菜单中的微信支付:并相应点击 使用教程-公众号支付
  迅速对文档内容重温、浏览,以方便在Senparc.Weixin.MP.dll中查找相应的功能。
  先配置支付授权目录,添加支付测试白名单,支付目录只支持三个,并且域名必须经过ICP备案。授权目录的作用是,如果要发起微信支付请求,请求的链接地址必须在授权目录下,否则身份无效,支付不能成功。测试白名单中添加的个人微信号,才能完成微信支付测试目录支付的测试,不在白名单中人员发起支付申请,支付不能成功。
  配置完成后,如何调用呢?我们继续看官方说明:  
  &在微信里面打开H5网页中执行JS调起支付。接口输入输出数据格式为JSON。
  注意:WeixinJSBridge内置对象在其他浏览器中无效。
  列表中参数名区分大小,大小写错误签名验证会失败。&
  OK,这里说明了几个事情,第一必须在微信浏览器进行;第二,参数区分大小写;第三,数据格式为JSON。
  官方说明,只要在页面中调用如下脚本,即可开启微信支付功能:
&View Code
  我的调用代码:因为我要在点击按钮确认支付之后,在调用微信支付进行后续操作,把官方代码提出到方法中
function onBridgeReady() {
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
&appId&: $('#APPID').val(),
//公众号名称,由商户传入
&timeStamp&: $('#Timestamp').val(),
//时间戳,自1970年以来的秒数
&nonceStr&: $('#Noncestr').val(), //随机串
&package&: $('#package').val(),
&signType&: &MD5&,
//微信签名方式:
&paySign&: $('#paySign').val() //微信签名
function (res) {
if (res.err_msg == &get_brand_wcpay_request:ok&) {
//支付成功,后续自行处理
//支付取消,或者其他错误,自行处理
  好吧,那这堆参数是从哪来的,都是啥玩意儿?我们逐个分析一下:
  appId:这个做微信开发都应该知道,公众号在开发者菜单就能找到
  timeStamp:时间戳,官方描述为&自1970年以来的秒数&,不用担心,肯定能从支付类库里找到
  nonceStr:官方解释是随机串&e61463f8efacccfbbb444&,靠啥玩意儿?详见,原来就是一套规则和算法,做过URL请求接口的朋友应该知道,有些公司JSON串的签名方式和这比较类似。
  package:预支付ID,调用官方API统一下单接口可以获得
  signType:字符串&MD5& & &
  paySign:官方解释是微信签名&70EABB79628FBCAFADD89&,好吧,我忍了,在看下,看来和随机串一个鸟样&
  到这里,官方的接口说明已经了解的很清楚了,那么下面就要解决调用微信支付的这几个参数了,通过Senparc.Weixin.MP.dll应该如何使用呢?既然需要先调用统一下单接口获取预支付订单ID,好吧,我们先来研究一下,如何获得这个ID吧。
  官方给出了,我们不在赘述,各参数研究按照上述接口的方式自行研究解决,唯一区别在于,调用官方接口需要传入一个XML,那很好办,拼接一下就可以了,预支付调用方法如下:
//这里通过官方的一个实体,用户自行使用,我这里是直接读取的CONFIG文件
private static Senparc.Weixin.MP.TenPayLibV3.TenPayV3Info tenPayV3Info = new Senparc.Weixin.MP.TenPayLibV3.TenPayV3Info(ConfigurationManager.AppSettings[&corpId&], ConfigurationManager.AppSettings[&corpSecret&], ConfigurationManager.AppSettings[&mch_id&]
, ConfigurationManager.AppSettings[&key&], ConfigurationManager.AppSettings[&v3url&]);
/// 微信预支付
public static string PayInfo(string attach, string body, string openid, string price, string orderNum = &3549&)
RequestHandler requestHandler = new RequestHandler(HttpContext.Current);
//微信分配的公众账号ID(企业号corpid即为此appId)
requestHandler.SetParameter(&appid&, tenPayV3Info.AppId);
//附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
requestHandler.SetParameter(&attach&, attach);
//商品或支付单简要描述
requestHandler.SetParameter(&body&, body);
//微信支付分配的商户号
requestHandler.SetParameter(&mch_id&, tenPayV3Info.MchId);
//随机字符串,不长于32位。
requestHandler.SetParameter(&nonce_str&, TenPayUtil.GetNoncestr());
//接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。
requestHandler.SetParameter(&notify_url&, tenPayV3Info.TenPayV3Notify);
//trade_type=JSAPI,此参数必传,用户在商户公众号appid下的唯一标识。
requestHandler.SetParameter(&openid&, openid);
//商户内部的订单号,32个字符内、可包含字母,自己生成
requestHandler.SetParameter(&out_trade_no&, orderNum);
//APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。
requestHandler.SetParameter(&spbill_create_ip&, &127.0.0.1&);
//订单总金额,单位为分,做过银联支付的朋友应该知道,代表金额为12位,末位分分
requestHandler.SetParameter(&total_fee&, price);
//取值如下:JSAPI,NATIVE,APP,我们这里使用JSAPI
requestHandler.SetParameter(&trade_type&, &JSAPI&);
requestHandler.SetKey(tenPayV3Info.Key);
requestHandler.CreateMd5Sign();
requestHandler.GetRequestURL();
requestHandler.CreateSHA1Sign();
string data = requestHandler.ParseXML();
requestHandler.GetDebugInfo();
//获取并返回预支付XML信息
return TenPayV3.Unifiedorder(data);
好的,拿到预支付订单的返回数据,一切又都好办了,根据返回参数的不同,自行解决,我们只关心调用正确的过程,操作继续,在返回的正确XML数据中,我们获取到了&(官方示例),好的,开始在页面做支付吧!
这里,我封装了一个实体,用来传输常用的数据,当然,各位也可以参考Senparc.Weixin.MP.dll提供的实体类。
public class ShareInfo
string corpId = string.E
public string CorpId
get { return corpId; }
set { corpId = }
string ticket = string.E
public string Ticket
set { ticket = }
string noncestr = string.E
public string Noncestr
set { noncestr = }
string timestamp = string.E
public string Timestamp
set { timestamp = }
private string paySign = string.E
public string PaySign
get { return payS }
set { paySign = }
private string package = string.E
public string Package
set { package = }
我们继续,来看一下支付接口需要用到的参数如何获取:
public static ShareInfo GetPayInfo(string prepayid)
shareInfo = new ShareInfo();
//检查是否已经注册jssdk
if (!JsApiTicketContainer.CheckRegistered(corpId))
JsApiTicketContainer.Register(corpId, corpSecret);
JsApiTicketResult jsApiTicket = JsApiTicketContainer.GetTicketResult(corpId);
JSSDKHelper jssdkHelper = new JSSDKHelper();
shareInfo.Ticket = jsApiTicket.
shareInfo.CorpId = corpId.ToLower();
shareInfo.Noncestr = JSSDKHelper.GetNoncestr().ToLower();
shareInfo.Timestamp = JSSDKHelper.GetTimestamp().ToLower();
shareInfo.Package=&prepay_id=& + prepayid.ToLower();
RequestHandler requestHandler = new RequestHandler(HttpContext.Current);
requestHandler.SetParameter(&appId&, shareInfo.CorpId);
requestHandler.SetParameter(&timeStamp&, shareInfo.Timestamp);
requestHandler.SetParameter(&nonceStr&, shareInfo.Noncestr);
requestHandler.SetParameter(&package&, shareInfo.Package);
requestHandler.SetParameter(&signType&, &MD5&);
requestHandler.SetKey(tenPayV3Info.Key);
requestHandler.CreateMd5Sign();
requestHandler.GetRequestURL();
requestHandler.CreateSHA1Sign();
shareInfo.PaySign = (requestHandler.GetAllParameters()[&sign&]).ToString();
return shareI
这样,支付接口需要用到的参数,就都封装在ShareInfo里了,好吧,调用之后,我们回到页面的后置代码中,或者你采用的ORM对应代码中去,将参数输出到页面
好的,写到这里,大家参照上面的JS代码,就可以完成整个的支付功能了。最后,再附送一个生成商家订单号的方法,代码如下:
好了,一切都是这样的简单,一两个小时,微信支付轻松搞定!C#微信支付教程系列之公众号支付_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C#微信支付教程系列之公众号支付
上传于|0|0|文档简介
&&C#微信支付教程系列之公众号支付
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩21页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 华为手机专业拍照使用方法 的文章

 

随机推荐