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>

最新文章

  1. 【LeetCode】House Robber III(337)
  2. [Android Pro] 常用的android工具类和库
  3. 在mvc中将session的值绑定在页面上
  4. nginx作为负载均衡服务器——测试
  5. SQL Server跨服务器的数据库迁移
  6. Java Executor并发框架(一)整体介绍
  7. pylint window下安装与使用
  8. web开发注意的问题
  9. poj2524
  10. Promise原理与实现探究的一种思路
  11. Traits技法
  12. JavaScript中Array数组的方法
  13. (七)File 文件的操作
  14. Oracle扩展的统计信息
  15. long和int互转
  16. Android 查看蓝牙hci日志
  17. .NET平台
  18. 有关于malloc申请内存和free内存释放
  19. Error: map 不是模板
  20. 使用PL/SQL Developer连接远程数据

热门文章

  1. NuGet打包,IIS自动发布
  2. PAT 甲级 1011 World Cup Betting (20)(代码+思路)
  3. C#泛型的学习
  4. UI设计教程分享:电商网页页面设计常见表现手法
  5. java指针与引用(转载)
  6. SSH无法连上CentOS7的问题
  7. Https如何确保传输安全的
  8. 不立flag了……
  9. .net上传文件,利用npoi读取文件信息到datatable里
  10. 用php脚本比较MySQL两个数据库的结构差异