Backup/Discuz.Forum/EPayments.cs
(开头部分) 10KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.IO;
using System.Net;
using System.Text;
using Discuz.Common;
using Discuz.Config;
using System.Security.Cryptography;
namespace Discuz.Forum
{
public class EPayments
{
/// <summary>
/// 检查支付结果
/// </summary>
/// <returns></returns>
public static bool CheckPayment(string notifyId)
{
GeneralConfigInfo configInfo = GeneralConfigs.GetConfig();
string partnerid = configInfo.Alipaypartnerid != "" ? configInfo.Alipaypartnerid : "2088002872555901";//如果config中关于合作partnerid的设置为空,则使用comsenz提供的partnerid
string aliPayNotifyUrl1 = "https://www.alipay.com/cooperate/gateway.do?service=notify_verify&";
string aliPayNotifyUrl2 = "http://notify.alipay.com/trade/notify_query.do?";
string responseText = GetHttp(string.Format("{0}partner={1}¬ify_id={2}", aliPayNotifyUrl1, partnerid, notifyId));
if (responseText != "true")//可能是由于上一个地址失效,则用第二条ATN线路再次验证
responseText = GetHttp(string.Format("{0}partner={1}¬ify_id={2}", aliPayNotifyUrl2, partnerid, notifyId));
//获取支付宝ATN返回结果,true是正确的订单信息,false 是无效的
if (responseText != "true")
return false;
//如果返回信息是get式的,则无需验证参数是否被篡改,因为notifyid只能被校验一次,支付宝校验之后即失效
if (DNTRequest.IsGet())
return true;
//排序
string[] sortedStr = System.Web.HttpContext.Current.Request.Form.AllKeys;
//string[] sortedStr = System.Web.HttpContext.Current.Request.QueryString.AllKeys; 本机测试时需要从QueryString中获得回传参数
//构造Post的数据串
StringBuilder urlParam = new StringBuilder();
if (configInfo.Usealipaycustompartnerid == 0)
{
string aliPayNotifyUrl = "http://pay.discuz.net/gateway/alipay.php?_type=alipay&_action=verify&_product=Discuz!NT&_version=" + Discuz.Common.Utils.GetAssemblyVersion();
for (int i = 0; i < sortedStr.Length; i++)
{
if (DNTRequest.GetString(sortedStr[i]) != "")
{
if (urlParam.ToString() == "")
urlParam.Append(sortedStr[i] + "=" + Utils.UrlEncode(DNTRequest.GetString(sortedStr[i])));
else
urlParam.Append("&" + sortedStr[i] + "=" + Utils.UrlEncode(DNTRequest.GetString(sortedStr[i])));
}
}
后面还有 176 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。
