ZhiYeJianKang_PeiXun/Song.Site/Pay/Weixin/JsApiPayPage.aspx.cs
2025-02-20 15:41:53 +08:00

59 lines
2.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.IO;
using System.Threading;
using LitJson;
using System.Web.Security;
namespace WxPayAPI
{
public partial class JsApiPayPage : System.Web.UI.Page
{
public static string wxJsApiParam {get;set;} //H5调起JS API参数
protected void Page_Load(object sender, EventArgs e)
{
Log.Info(this.GetType().ToString(), "page load");
if (!IsPostBack)
{
string openid = Request.QueryString["openid"];
string total_fee = Request.QueryString["total_fee"];
//检测是否给当前页面传递了相关参数
if (string.IsNullOrEmpty(openid) || string.IsNullOrEmpty(total_fee))
{
Response.Write("<span style='color:#FF0000;font-size:20px'>" + "页面传参出错,请返回重试" + "</span>");
Log.Error(this.GetType().ToString(), "This page have not get params, cannot be inited, exit...");
submit.Visible = false;
return;
}
//若传递了相关参数,则调统一下单接口,获得后续相关接口的入口参数
JsApiPay jsApiPay = new JsApiPay(this);
jsApiPay.openid = openid;
jsApiPay.total_fee = int.Parse(total_fee);
//JSAPI支付预处理
try
{
//统一下单
WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult(WxPayApi.GenerateOutTradeNo());
//获取H5调起JS API参数
wxJsApiParam = jsApiPay.GetJsApiParameters(WxPayConfig.KEY);// 用于前端js调用
Log.Debug(this.GetType().ToString(), "wxJsApiParam : " + wxJsApiParam);
//在页面上显示订单信息
Response.Write("<span style='color:#00CD00;font-size:20px'>订单详情:</span><br/>");
Response.Write("<span style='color:#00CD00;font-size:20px'>" + unifiedOrderResult.ToPrintStr() + "</span>");
}
catch(Exception ex)
{
Response.Write("<span style='color:#FF0000;font-size:20px'>" + "下单失败,请返回重试" + "</span>");
submit.Visible = false;
}
}
}
}
}