DTcms.Web/api/payment/tenpay/notify_url.aspx.cs
(开头部分) 8KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DTcms.API.Payment.Tenpay;
using DTcms.Common;
namespace DTcms.Web.api.payment.tenpay
{
public partial class notify_url : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//创建ResponseHandler实例
ResponseHandler resHandler = new ResponseHandler(Context);
resHandler.setKey(TenpayUtil.key);
//判断签名
if (resHandler.isTenpaySign())
{
///通知id
string notify_id = resHandler.getParameter("notify_id");
//通过通知ID查询,确保通知来至财付通
//创建查询请求
RequestHandler queryReq = new RequestHandler(Context);
queryReq.init();
queryReq.setKey(TenpayUtil.key);
queryReq.setGateUrl("https://gw.tenpay.com/gateway/simpleverifynotifyid.xml");
queryReq.setParameter("partner", TenpayUtil.partner);
queryReq.setParameter("notify_id", notify_id);
//通信对象
TenpayHttpClient httpClient = new TenpayHttpClient();
httpClient.setTimeOut(5);
//设置请求内容
httpClient.setReqContent(queryReq.getRequestURL());
//后台调用
if (httpClient.call())
{
//设置结果参数
ClientResponseHandler queryRes = new ClientResponseHandler();
queryRes.setContent(httpClient.getResContent());
queryRes.setKey(TenpayUtil.key);
//判断签名及结果
//只有签名正确,retcode为0,trade_state为0才是支付成功
if (queryRes.isTenpaySign())
{
//取结果参数做业务处理
string order_no = resHandler.getParameter("out_trade_no").ToUpper();
//财付通订单号
string trade_no = resHandler.getParameter("transaction_id");
//金额,以分为单位
string total_fee = resHandler.getParameter("total_fee");
//如果有使用折扣券,discount有值,total_fee+discount=原请求的total_fee
string discount = resHandler.getParameter("discount");
//支付结果
string trade_state = resHandler.getParameter("trade_state");
//交易模式,1即时到帐 2中介担保
string trade_mode = resHandler.getParameter("trade_mode");
后面还有 102 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
