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

78 lines
3.6 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using WeiSha.Common;
using Song.ServiceInterfaces;
namespace WxPayAPI
{
/// <summary>
/// 小程序支付的回调处理
/// </summary>
public partial class miniProgramResult : System.Web.UI.Page
{
protected int total_fee = 0; //充值的钱数
//int piid = WeiSha.Common.Request.QueryString["piid"].Int32 ?? 0;
string serial = WeiSha.Common.Request.QueryString["serial"].String;
protected void Page_Load(object sender, EventArgs e)
{
if (!string.IsNullOrWhiteSpace(serial))
{
//交易流水与支付接口
Song.Entities.MoneyAccount moneyAccount = Business.Do<IAccounts>().MoneySingle(serial);
Song.Entities.PayInterface payInterface = Business.Do<IPayInterface>().PaySingle(moneyAccount.Pai_ID);
total_fee = (int)(moneyAccount.Ma_Money * 100);
//商户id与支付密钥
string appid = payInterface.Pai_ParterID; //绑定支付的APPID必须配置
WeiSha.Common.CustomConfig config = CustomConfig.Load(payInterface.Pai_Config);
string mchid = config["MCHID"].Value.String; //商户id
string paykey = config["Paykey"].Value.String; //支付密钥
//
WxPayData data = new WxPayData();
data.SetValue("out_trade_no", serial); //商户订单号
WxPayData result = WxPayApi.OrderQuery(data, appid, mchid, paykey);//提交订单查询请求给API接收返回数据
Log.Info("OrderQuery", "小程序-订单查询结果GET, result : " + result.ToXml());
string state = result.GetValue("trade_state").ToString();
if (state == "SUCCESS")
{
//付款方与收款方商户id)
moneyAccount.Ma_Buyer = result.GetValue("attach").ToString();
moneyAccount.Ma_Seller = result.GetValue("mch_id").ToString();
Business.Do<IAccounts>().MoneyConfirm(moneyAccount);
lbError.Visible = false;
lbSucess.Visible = true;
}
else
{
lbError.Visible = true;
lbSucess.Visible = false;
}
}
else
{
//接收来自微信支付中心的异步请求
ResultNotify resultNotify = new ResultNotify(this);
//resultNotify.ProcessNotify();
//获取结果
WxPayData notifyData = resultNotify.GetNotifyData();
string out_trade_no = notifyData.GetValue("out_trade_no").ToString();
Log.Info(this.GetType().ToString(), "小程序支付-商户流水号 : " + out_trade_no);
if (!string.IsNullOrWhiteSpace(out_trade_no))
{
Song.Entities.MoneyAccount maccount = Business.Do<IAccounts>().MoneySingle(out_trade_no);
if (maccount != null)
{
//付款方与收款方商户id)
maccount.Ma_Buyer = notifyData.GetValue("attach").ToString();
maccount.Ma_Seller = notifyData.GetValue("mch_id").ToString();
Business.Do<IAccounts>().MoneyConfirm(maccount);
}
}
}
}
}
}