• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 最详细的ASP.NET微信JS-SDK支付代码

最详细的ASP.NET微信JS-SDK支付代码

作者:天风隼 字体:[增加 减小] 来源:互联网 时间:2017-05-11

天风隼通过本文主要向大家介绍了购物车代码 asp.net,下载asp.net源代码,源代码 asp.net,留言板asp.net代码,微信开发 asp.net等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例为大家分享了微信JS SDK支付的具体代码,供大家参考,具体内容如下

模型层实体类:

 public class JsEntities
 {
 /// <summary>
 /// 公众号id
 /// </summary>
 public string appId { get; set; }
 /// <summary>
 /// 时间戳
 /// </summary>
 public string timeStamp { get; set; }
 /// <summary>
 /// 随机字符串
 /// </summary>
 public string nonceStr { get; set; }
 /// <summary>
 /// 订单详情扩展字符串
 /// </summary>
 public string package { get; set; }
 /// <summary>
 /// 签名类型
 /// </summary>
 public string signType { get; set; }

 /// <summary>
 /// 签名
 /// </summary>
 public string paySign { get; set; }

 }

</div>
 public class UnifyEntities
 {
 /// <summary>
 /// 公众账号ID
 /// </summary>
 public string appid { get; set; }
 /// <summary>
 /// 微信支付分配的商户号
 /// </summary>
 public string mch_id { get; set; }
 /// <summary>
 /// 微信支付分配的终端设备号
 /// </summary>
 public string device_info { get; set; }
 /// <summary>
 /// 随机字符串,不长于32位
 /// </summary>
 public string nonce_str { get; set; }
 /// <summary>
 /// 签名
 /// </summary>
 public string sign { get; set; }
 /// <summary>
 /// 商品描述最大长度127
 /// </summary>
 public string body { get; set; }
 /// <summary>
 /// 附加数据,原样返回
 /// </summary>
 public string attach { get; set; }
 /// <summary>
 /// 商户系统内部的订单号,32 个字符内、可包含字母,确保在商户系统唯一,详细说明
 /// </summary>
 public string out_trade_no { get; set; }
 /// <summary>
 /// 订单总金额,单位为分,不能带小数点
 /// </summary>
 public string total_fee { get; set; }
 /// <summary>
 /// 终端IP
 /// </summary>
 public string spbill_create_ip { get; set; }
 /// <summary>
 /// 交易起始时间
 /// </summary>
 public string time_start { get; set; }
 /// <summary>
 /// 交易结束时间
 /// </summary>
 public string time_expire { get; set; }
 /// <summary>
 /// 接收微信支付成功通知
 /// </summary>
 public string notify_url { get; set; }
 /// <summary>
 /// JSAPI、NATIVE、APP
 /// </summary>
 public string trade_type { get; set; }
 /// <summary>
 /// 用户在商户appid下的唯一标识,trade_type为JSAPI 时,此参数必传
 /// </summary>
 public string openid { get; set; }
 /// <summary>
 /// 只在 trade_type 为 NATIVE 时需要填写。此id为二维码中包含的商品ID,商户自行维护。
 /// </summary>
 public string product_id { get; set; }
 }
</div>
 public class UnifyReceive
 {
 /// <summary>
 /// SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断
 /// </summary>
 public string return_code { get; set; }
 /// <summary>
 /// 返回信息,如非空,为错误原因
 /// </summary>
 public string return_msg { get; set; }
 /// <summary>
 /// 微信分配的公众账号ID
 /// </summary>
 public string appid { get; set; }
 /// <summary>
 /// 微信支付分配的商户号
 /// </summary>
 public string mch_id { get; set; }
 /// <summary>
 /// 随机字符串,不长于32位
 /// </summary>
 public string nonce_str { get; set; }
 /// <summary>
 /// 签名
 /// </summary>
 public string sign { get; set; }
 /// <summary>
 /// 业务结果
 /// </summary>
 public string result_code { get; set; }
 /// <summary>
 /// 预支付ID
 /// </summary>
 public string prepay_id { get; set; }
 /// <summary>
 /// 交易类型
 /// </summary>
 public string trade_type { get; set; }
 /// <summary>
 /// 二维码链接
 /// </summary>
 public string code_url { get; set; }
 public UnifyReceive(string xml)
 {
  XElement doc = XElement.Parse(xml);
  return_code = doc.Element("return_code").Value;
  return_msg = doc.Element("return_msg").Value;
  if (return_code == "SUCCESS")
  {
  appid = doc.Element("appid").Value;
  mch_id = doc.Element("mch_id").Value;
  nonce_str = doc.Element("nonce_str").Value;
  sign = doc.Element("sign").Value;
  result_code = doc.Element("result_code").Value;
  if (result_code == "SUCCESS")
  {
   trade_type = doc.Element("trade_type").Value;
   prepay_id = doc.Element("prepay_id").Value;
   if (trade_type == "NATIVE")
   {
   code_url = doc.Element("code_url").Value;
   }
   trade_type = doc.Element("trade_type").Value;
  }
  }
 }
 }
</div>

TestJs.aspx内容:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JsPay.aspx.cs" Inherits="WeChatPayDemo.JsPay" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title></title>
 <script src="http://code.jquery.com/jquery-1.9.0.js"></script>
 <script src="Scripts/wxpay.js"></script>
 <script>
 $(function () {
  $("#submit").click(function () {
  var OID ="<%=openid%>";
  alert(OID);
  $.get("WxPay/WxPay.ashx?action=jspayparam", {
   body: $("#body").val(),
   total_fee: $("#price").val(),
   out_trade_no: $("#order").val(),
   trade_type: "JSAPI",
   msgid: "<%=openid%>"

  }, function (data) {
   WxPay.Pay(data.appId, data.timeStamp, data.nonceStr, data.package, data.signType, data.paySign, function () {
   alert("支付成功");
   });
  }, "json");

  });
 })
 </script>
</head>
<body>
 <form id="form1" runat="server">
 <div>
  商品描述:<input type="text" id="body" />
  商品价格:<input type="text" id="price" />
  订单号:<input type="text" id="order" />
  <input type="button" value="提交订单" id="submit" />
 </div>
 </form>
</body>
</html>

</div>

JsPay.aspx.cs代码:

 public partial class JsPay : System.Web.UI.Page
 {
 public string openid = "";
 protected void Page_Load(object sender, EventArgs e)
 {
  string code = Request["code"];
  if (string.IsNullOrEmpty(code))
  {
  //如果code没获取成功,重新拉取一遍
  GetAuthUrl("wxxxxxxxxxxxxxxxxxxxxxxx", "http://www.china101.net/JsPay.aspx");
  }

  openid = GetOpenID("wxxxxxxxxxxxxxxxxxxxxxxx", "dsdssdsdsdsdsdsdsdsdsd", JKRequest.GetQueryString("code"), () => { });
 }
 public string GetOpenID(string appid, string secret, string code, Action CallBack)
 {
  try
  {
  string retdata = Utils.HttpGet(string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appid, secret, code));
  .LogHelper.WriteFile(retdata);
  JObject jobj = (JObject)JsonConvert.DeserializeObject(retdata);
  string openid = jobj.Value<string>("openid");
  return openid;
  }
  catch (Exception)
  {
  CallBack();
  return "";
  }
  // return GetUserInfo(access_token, openid);
 }

 /// <summary>
 /// 获取鉴权地址
 /// </summary>
 /// <param name="appid"></param>
 /// <param name="redirect_url"></param>
 /// <returns></returns>
 public void GetAuthUrl(string appid, string redirect_url)
 {
  Response.Redirect(string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_base&state=123#wechat_redirect", appid, Utils.UrlEncode(redirect_url)));
 }
 }

</div>

WxPay.ashx代码:




 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 最详细的ASP.NET微信JS-SDK支付代码
  • 使用ASP.NET中关于代码分离的实例分享
  • asp.net基于HashTable实现购物车的方法
  • asp.net基于session实现购物车的方法
  • ASP.NET书籍信息录入实现代码
  • ASP.NET购物车实现过程详解
  • ASP.NET数组删除重复值实现代码
  • ASP.NET连接sql2008数据库的实现代码
  • asp.net中控制反转的理解(文字+代码)
  • asp.net各种cookie代码和解析实例

相关文章

  • 2017-05-11asp.net生成字母和数字混合图形验证码
  • 2017-05-11ASP.NET MVC5网站开发用户修改资料和密码(六)
  • 2017-05-11asp.net下遍历页面中所有的指定控件的代码
  • 2017-05-11asp.net 文件上传与刷新与asp.net页面与iframe之间的数据传输
  • 2017-05-11Asp.Net Couchbase Memcached图文安装调用开发
  • 2017-05-11用类的继承关系(重写父类的方法)实现简易后台代码模板
  • 2017-05-11.net 反序题目的详细解答第1/2页
  • 2017-05-11从请求管道深入剖析HttpModule的实现机制图文介绍
  • 2017-05-11asp.net中c#自定义事件的实现方法详解
  • 2017-05-11asp.net MVC利用ActionFilterAttribute过滤关键字的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ASP.NET组件System.Web.Optimization原理及缓存问题详解
    • ASP.NET打开新页面而不关闭原来的页面 实例代码
    • ADO.NET实现对SQL Server数据库的增删改查示例
    • 使用DataTable更新数据库(增,删,改)
    • asp.net AjaxControlToolKit--TabContainer控件的介绍
    • .NET微信公众号开发之查询自定义菜单
    • 记录游客页面访问IP的简易实现代码 (asp.net+txt)
    • 客户端用JavaScript填充DropDownList控件 服务器端读不到值
    • 解决asp.net ajax sys未定义的解决方法
    • ASP.net的验证控件浅析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有