C# MVC 微信支付教程系列之公众号支付代码

2019-12-30 15:34:35于海丽

这里就是上面修改了的代码,童鞋们请注意


  /**
  * 
  * 从统一下单成功返回的数据中获取微信浏览器调起jsapi支付所需的参数,
  * 微信浏览器调起JSAPI时的输入参数格式如下:
  * {
  * "appId" : "wx2421b1c4370ec43b",  //公众号名称,由商户传入  
  * "timeStamp":" 1395712654",   //时间戳,自1970年以来的秒数  
  * "nonceStr" : "e61463f8efa94090b1f366cccfbbb444", //随机串  
  * "package" : "prepay_id=u802345jgfjsdfgsdg888",  
  * "signType" : "MD5",   //微信签名方式: 
  * "paySign" : "70EA570631E4BB79628FBCA90534C63FF7FADD89" //微信签名 
  * }
  * @return string 微信浏览器调起JSAPI时的输入参数,json格式可以直接做参数用
  * 更详细的说明请参考网页端调起支付API:http://www.easck.com/wiki/doc/api/jsapi.php?chapter=7_7
  * 
  */
  public WxPayData GetJsApiParameters()
  {
   Log.Debug(this.GetType().ToString(), "JsApiPay::GetJsApiParam is processing...");

   WxPayData jsApiParam = new WxPayData();
   jsApiParam.SetValue("appId", unifiedOrderResult.GetValue("appid"));
   jsApiParam.SetValue("timeStamp", WxPayApi.GenerateTimeStamp());
   jsApiParam.SetValue("nonceStr", WxPayApi.GenerateNonceStr());
   jsApiParam.SetValue("package", "prepay_id=" + unifiedOrderResult.GetValue("prepay_id"));
   jsApiParam.SetValue("signType", "MD5");
   jsApiParam.SetValue("paySign", jsApiParam.MakeSign());

   string parameters = jsApiParam.ToJson();
   Log.Debug(this.GetType().ToString(), "Get jsApiParam : " + parameters);
   return jsApiParam;
  }

ModelForOrder类的代码:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Web.Models
{
 public class ModelForOrder
 {
  public string appId { get; set; }
  public string timeStamp { get; set; }
  public string nonceStr { get; set; }
  public string packageValue { get; set; }
  public string paySign { get; set; }

  public string msg { get; set; }
 }
} 

还有一个地方需要注意,修改一下的就是这里WxLib/business/JsApiPay.cs,如下图:

asp.net,mvc,微信支付,.net

最后,把程序发布出来,这次咱们把Web发布在http://www.easck.com/p>

asp.net,mvc,微信支付,.net

asp.net,mvc,微信支付,.net

注意,这里面的域名和上面我们发布的域名要一致。