asp.net微信支付发起页面jsapi.aspx
jsapi.aspx
后台核心代码
//创建支付应答对象
RequestHandler packageReqHandler = new RequestHandler(Context);
//初始化
packageReqHandler.init();
packageReqHandler.setKey(TenpayUtil.key); //设置package订单参数
packageReqHandler.setParameter("partner", TenpayUtil.partner); //商户号
packageReqHandler.setParameter("bank_type", "WX");
packageReqHandler.setParameter("fee_type", ""); //币种,1人民币
packageReqHandler.setParameter("input_charset", "UTF-8");
packageReqHandler.setParameter("out_trade_no", model.order_id); //商家订单号
packageReqHandler.setParameter("total_fee", (model.order_money * ).ToString("f0")); //商品金额,以分为单位(money * 100).ToString()
packageReqHandler.setParameter("notify_url", TenpayUtil.tenpay_notify); //接收财付通通知的URL
packageReqHandler.setParameter("body", model.description.Replace(" ", "")); //商品描述 packageReqHandler.setParameter("spbill_create_ip", Page.Request.UserHostAddress); //用户的公网ip,不是商户服务器IP //获取package包
packageValue = packageReqHandler.getRequestURL(); //调起微信支付签名
timeStamp = TenpayUtil.getTimestamp();
nonceStr = TenpayUtil.getNoncestr(); //设置支付参数
RequestHandler paySignReqHandler = new RequestHandler(Context);
paySignReqHandler.setParameter("appid", appId);
paySignReqHandler.setParameter("appkey", TenpayUtil.appkey);
paySignReqHandler.setParameter("noncestr", nonceStr);
paySignReqHandler.setParameter("timestamp", timeStamp);
paySignReqHandler.setParameter("package", packageValue);
paySign = paySignReqHandler.createSHA1Sign(); string sign = PayOrderCommon.OrderHelper.CreateSign(payNo); successUrl = string.Format("{0}?sign={1}&payNo={2}", "payresult.ashx", sign, payNo);
前台页面
<script language="javascript" type="text/javascript">
function auto_remove(img) {
div = img.parentNode.parentNode; div.parentNode.removeChild(div);
img.onerror = "";
return true;
} function changefont(fontsize) {
if (fontsize < 1 || fontsize > 4) return;
$('#content').removeClass().addClass('fontSize' + fontsize);
} // 当微信内置浏览器完成内部初始化后会触发WeixinJSBridgeReady事件。
document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
//公众号支付
WeixinJSBridge.invoke('getBrandWCPayRequest', {
"appId": "<%= appId %>", //公众号名称,由商户传入
"timeStamp": "<%= timeStamp %>", //时间戳
"nonceStr": "<%= nonceStr %>", //随机串
"package": "<%= packageValue %>", //扩展包
"signType": "SHA1", //微信签名方式:1.sha1
"paySign": "<%= paySign %>" //微信签名
}, function (res) {
if (res.err_msg == "get_brand_wcpay_request:ok") {
location.href = "<%=successUrl %>";
}
// 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
//因此微信团队建议,当收到ok返回时,向商户后台询问是否收到交易成功的通知,若收到通知,前端展示交易成功的界面;若此时未收到通知,商户后台主动调用查询订单接口,查询订单的当前状态,并反馈给前端展示相应的界面。
}); WeixinJSBridge.log('yo~ ready.'); }, false)
</script>
asp.net微信支付发起页面jsapi.aspx的更多相关文章
- asp.net 微信支付 错误解决方案
asp.net 微信支付 错误解决方案 在网上看到有人解决方案为: 解决方法 出现这种错误网上查出现有的原因是: 订阅号没有相关的权限 账号没有认证,没有相关的权限 那么这里遇到问题两种都不是.开发账 ...
- 微信支付 第一篇 JSAPI 支付配置与获取 OpenID
开通微信支付支付产品 首先要在微信支付申请成为 微信支付商户. 选择开通具体的支付产品 成为微信支付商户后在管理后台选择微信支付中的具体支付产品并申请开通如 JSAPI . 将支付商户与公众号关联 这 ...
- ASP.NET 微信支付
一.在支付前期,我们需要获取用户的OpenId,此块内容只针对于JSAPI(微信中直接支付)才需要,如果生成二维码(NATIVE)扫描支付,请跳过此步骤 思路大致是:获取用户的code值 > 根 ...
- asp.net微信支付打通发货通知代码
上次遇到微信支付,发货接口的时候,官方的demo也没有提供相应的代码 ,因本人技术有限,百度 google 很久都没有asp.net 版本的,最后只好硬着头皮自己搞,没想到官方文档也是错的. 我这一步 ...
- php微信支付(仅Jsapi支付)详细步骤.----仅适合第一次做微信开发的程序员
本人最近做了微信支付开发,是第一次接触.其中走了很多弯路,遇到的问题也很多.为了让和我一样的新人不再遇到类似的问题,我把我的开发步骤和问题写出来,以供参考. 开发时间是2016/8/2,所以微信支付的 ...
- 到处都是坑的微信支付V3之 微信支付回调页面
据上次 到处都是坑的微信支付V3 后很多园友在被虐了千百遍后终于跳转到了亲切的微信支付界面,但输入密码支付后却不知道怎么处理了,接下来补上支付后的处理流程. 1. html中根据前台支付后反馈信息成功 ...
- ASP.NET微信支付XXE漏洞修复
1. XXE场景 关于XML解析存在的安全问题指引 微信支付商户,最近暴露的XML外部实体注入漏洞(XML External Entity Injection,简称 XXE),该安全问题是由XML组件 ...
- 微信支付中的jsapi返回提示信息
jsapi中跳转到微信支付中触发的方法是js中的getBrandWCPayRequest方法. 改方法中的返回结果msg提示信息如下: err_msg:get_brand_wcpay_request: ...
- Asp.Net微信支付接口之jsApiPay教程
1.微信支付JsApiPay只能在微信浏览器中使用 2.必须先申请微信支付功能 3.设置域名 4.设置支付授权目录 一定要精确到最后一级目录 5.获取APPID和AppSecret AppSecr ...
随机推荐
- jsplumb踩坑
一,,关于连线器label 我们全局设置中可以用 getInstance 实例化新对象 也可以通过 importDefaults 实例化新对象 当我想要给连线器上添加标签 每个连线器上的标签都不一样 ...
- YII2中自定义用户认证模型,完成登陆和注册
有些时候我们需要自已定义用户类,操作自已建的用户表,来完成登陆和注册功能. 用户表结构如下,当然可以根据自已的需要添加或删除: CREATE TABLE `tb_user` ( `id` int(11 ...
- BTC和BCH 区别和联系?
在比特币刚刚出现的时期,中本聪对区块的大小限制在1M.这种限制既保障性能较弱的个人电脑能够参与其中,同时也起到了防止攻击者让比特币网络超载的风险发生,毕竟那时系统还很脆弱.在1M的限制下,10分钟一个 ...
- BCH/BCHABC/BCHSV分叉后重放机制小结
1. 不过,在谈重放保护之前,我们需要先了解一下重放攻击(又称重播攻击.回放攻击).实际上,重放攻击在互联网行业里就有过出现,也是计算机世界黑客最常用的攻击方式之一,它是指攻击者发送一个目的主机已接收 ...
- webpack接上一篇
html-webpack-plugin 自动生成html文件 安装:npm install html-webpack-plugin --save-dev 使用 在webpack.config.js中引 ...
- 数据库以及pymysql
1.pymysql模块操作数据库详细 import pymysql # user = 'chun' # psw = conn = pymysql.connect(host='localhost',us ...
- maven 单元测试 ( http://www.cnblogs.com/qinpengming/p/5225380.html )
对junit单元测试的报告:类似这样的结果 ------------------------------------------------------- T E S T S ----------- ...
- NOIP需要掌握的内容(大致
1.排序算法(快排.选择.冒泡.堆排序.二叉排序树.桶排序)2.DFS/BFS 剪枝 哈希表3.树 ①遍历 ②二叉树 ③二叉排序树(查找.生成.删除) ④堆(二叉堆.左偏树.堆排序) ...
- mongo数据库的y2038问题
查阅mongo for c driver 驱动源码, 发现其 _id 是 12byte ,其中头4字节,调用time(NULL), 这个函数存在y2038问题. 建议是修改为16byte ,前面8b ...
- uuid唯一吗
是唯一的.我在几台硬件完全相同(同一批购买的).软件也完全相同(用同一个GHOST系统安装)的电脑上试过: 不同的电脑上,wmic csproduct get uuid 获取的UUID码是不同的.另 ...