using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using WeiSha.Common; using Song.ServiceInterfaces; using Song.Entities; using LitJson; using WxPayAPI; namespace Song.Site.Pay.Weixin { public partial class miniProgramCall : System.Web.UI.Page { //交易流水号,即商户订单号 protected string serial = WeiSha.Common.Request.QueryString["serial"].String; protected int total_fee = WeiSha.Common.Request.QueryString["total_fee"].Int32 ?? 0; //充值的钱数 protected int orgid = WeiSha.Common.Request.QueryString["orgid"].Int32 ?? 0; //机构id protected string mchid = WeiSha.Common.Request.QueryString["mchid"].String; //商户ID(微信支付中心的商户ID) protected string paykey = WeiSha.Common.Request.QueryString["paykey"].String; //商户支付密钥 protected string appid = WeiSha.Common.Request.QueryString["appid"].String; //小程序appid protected string secret = WeiSha.Common.Request.QueryString["secret"].String; //小程序secret protected string openid = WeiSha.Common.Request.QueryString["openid"].String; //回调地址 protected string notify_url = WeiSha.Common.Request.QueryString["notify_url"].String; ////支付接口id //Song.Entities.PayInterface payInterface = null; protected void Page_Load(object sender, EventArgs e) { Response.Write(JsApiPayPage()); Response.End(); } /// /// 生成js调用相关数据 /// public string JsApiPayPage() { //检测是否给当前页面传递了相关参数 if (total_fee <= 0) { Response.Write("" + "页面传参出错,请返回重试" + ""); WxPayAPI.Log.Error(this, "交易资金小于等于0"); return null; } //若传递了相关参数,则调统一下单接口,获得后续相关接口的入口参数 JsApiPay jsApiPay = new JsApiPay(this); jsApiPay.openid = openid; jsApiPay.total_fee = total_fee; //JSAPI支付预处理 try { //付款方信息 string buyer = string.Empty; Song.Entities.Accounts acc = Extend.LoginState.Accounts.CurrentUser; if (acc != null) buyer = string.IsNullOrWhiteSpace(acc.Ac_MobiTel1) ? acc.Ac_AccName : acc.Ac_MobiTel1; Song.Entities.Organization org = Business.Do().OrganSingle(orgid); WxPayAPI.Log.Debug(this, "回调域:" + notify_url); //统一下单 WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult("JSAPI", org.Org_PlatformName, serial, appid, mchid, paykey, notify_url, buyer); //获取H5调起JS API参数 string wxJsApiParam = jsApiPay.GetJsApiParameters(paykey);// 用于前端js调用 WxPayAPI.Log.Debug(this, "获取H5调起JS API参数:"+wxJsApiParam); return wxJsApiParam; } catch (Exception ex) { WxPayAPI.Log.Error(this, "支付下单失败 : " + ex.Message); WxPayAPI.Log.Error(this, "支付下单失败 : " + ex.StackTrace); return null; } } } }