首页 > 代码库 > .net版微信支付JSAPI

.net版微信支付JSAPI

前段时间做了一个微信公众号,里面涉及到了微信支付这一个功能,于是在微信公众号平台里面下了那个.net版本的SDK,可能由于我以前也没有接触过微信支付这一块,所以将SDK部署到我的项目中的后,还是支付不了,而且网上关于.net版本的资料算是比较少的,基本上都是Java和PHP的,我写这篇文章的主要目地就是为了那些刚接触.net微信支付的朋友可以借鉴一下,少走一些弯路,好了,下来开始来说说关于用.net开发微信支付的一些方面。

1、公众号加入微信支付需要公众号开通商户后台功能

2、需要在微信公众号后台设置支付目录,支付目录必须是二级目录以上,如:http://cnblogs.com/pay/,你的支付页面就是在pay文件下

3、在测试阶段需要测试支付是否可行的话,需要在后台微信支付中设置支付白名单,白名单中的用户就可能测试支付了,不了解的可以自行去后台设置中看一下基本就明白了

下面说说关于支付一的些代码

后台:

protected string wx_packageValuehttp://www.mamicode.com/= "";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{

  string strWeixin_OpenID = "";//openid的获取这里就不多述说了

  string strBillNo="10000001";//订单号

  decimal pay = decimal.Parse("0.01");//这里为支付的金额
  string _Pay_Package = Interface_WxPay.Get_RequestHtml(strWeixin_OpenID, strBillNo, pay, "支付测试", "hb_store");//该方法中的具体实现结合微信提供的SDK就可以实现

  //微信jspai支付
  if (_Pay_Package.Length > 0)
  {
    wx_packageValue = http://www.mamicode.com/_Pay_Package;
  }

}

}

 

前台:

//需要引用两个js包

<script language="javascript" src="http://res.mail.qq.com/mmr/static/lib/js/jquery.js" type="text/javascript"></script>
<script language="javascript" src="http://res.mail.qq.com/mmr/static/lib/js/lazyloadv3.js" type="text/javascript"></script>

<script language="javascript" type="text/javascript">
  // 当微信内置浏览器完成内部初始化后会触发WeixinJSBridgeReady事件。
  document.addEventListener(‘WeixinJSBridgeReady‘, function onBridgeReady() {

  //公众号支付,getBrandWCPayRequest为支付按钮的ID
  jQuery(‘input#getBrandWCPayRequest‘).click(function (e) {
    WeixinJSBridge.invoke(‘getBrandWCPayRequest‘, <%=wx_packageValue %> , function (res) {
    if (res.err_msg == "get_brand_wcpay_request:ok") {
      //成功,进入支付成功页面
    
    }else
    {
      //失败,进入支付失败页面
  }

  //微信官方说明
  // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
  //因此微信团队建议,当收到ok返回时,向商户后台询问是否收到交易成功的通知,若收到通知,前端展示交易成功的界面;若此时未收到通知,商户后台主动调用查询订单接口,查询订单的当前状态,并反馈给前端展示相应的界面。
});
});

}, false)
</script>

.net版微信支付JSAPI