微信支付后台服务器返回的接口通知notify_url(回调接口设计)-C/S框架网
微信支付后台服务器返回的接口通知notify_url(回调接口设计)-C/S框架网

C/S框架网提供微信、支付宝线上支付整体解决方案!!!

一、线上支付开发资料网址大全
1.1 支付宝
支付宝商家中心 https://mrchportalweb.alipay.com
支付宝服务商中心 https://p.alipay.com
支付宝开放平台 https://openhome.alipay.com
支付宝开放平台文档中心:https://opendocs.alipay.com/open/00a0ut
支付宝JSAPI H5开发文档介绍:https://myjsapi.alipay.com/alipayjsapi/index.html
1.2 微信支付
二、前端、后端开发技术支持服务
2.1 详细开发文档

2.2 微信、支付宝支付开发教程:
2.3 微信、支付宝Web支付演示:
三、成功案例
3.1 Web/网站集成在线支付:

3.2 Winform桌面系统集成在线支付:

四、WebApi后端接口样参考

案例代码参考1:
微信回调接口POST过来的XML数据:
XML Code:
<xml>
<appid><![CDATA[wx44495463a43b7c]]></appid>
<bank_type><![CDATA[CMB_CREDIT]]></bank_type>
<cash_fee><![CDATA[20]]></cash_fee>
<fee_type><![CDATA[CNY]]></fee_type>
<is_subscribe><![CDATA[N]]></is_subscribe>
<mch_id><![CDATA[1527472222]]></mch_id>
<nonce_str><![CDATA[6OQ37L7i6JN1PRLD]]></nonce_str>
<openid><![CDATA[oCohp1HF7xLcx-o5QdA-hLc2ios8]]></openid>
<out_trade_no><![CDATA[15557331433589231953]]></out_trade_no>
<result_code><![CDATA[SUCCESS]]></result_code>
<return_code><![CDATA[SUCCESS]]></return_code>
<sign><![CDATA[6C6A7CB3F3C742D0AE56687A10F4EA31]]></sign>
<time_end><![CDATA[20190415203040]]></time_end>
<total_fee>20</total_fee><trade_type>
<![CDATA[APP]]></trade_type>
<transaction_id><![CDATA[4200000290201904150837155038]]></transaction_id>
</xml>
//来源:C/S框架网(www.csframework.com) QQ:23404761
<appid><![CDATA[wx44495463a43b7c]]></appid>
<bank_type><![CDATA[CMB_CREDIT]]></bank_type>
<cash_fee><![CDATA[20]]></cash_fee>
<fee_type><![CDATA[CNY]]></fee_type>
<is_subscribe><![CDATA[N]]></is_subscribe>
<mch_id><![CDATA[1527472222]]></mch_id>
<nonce_str><![CDATA[6OQ37L7i6JN1PRLD]]></nonce_str>
<openid><![CDATA[oCohp1HF7xLcx-o5QdA-hLc2ios8]]></openid>
<out_trade_no><![CDATA[15557331433589231953]]></out_trade_no>
<result_code><![CDATA[SUCCESS]]></result_code>
<return_code><![CDATA[SUCCESS]]></return_code>
<sign><![CDATA[6C6A7CB3F3C742D0AE56687A10F4EA31]]></sign>
<time_end><![CDATA[20190415203040]]></time_end>
<total_fee>20</total_fee><trade_type>
<![CDATA[APP]]></trade_type>
<transaction_id><![CDATA[4200000290201904150837155038]]></transaction_id>
</xml>
//来源:C/S框架网(www.csframework.com) QQ:23404761
微信回调接口设计要求:
1,notify_url:回调通知接口HTTP地址,POST请求,不能是IP地址(必须是域名)不能带端口,预设80端口。
参考: http://www.xxxx.com/notify_url.aspx
2,必须是外网能访问HTTP地址,POST方式,微信服务器POST XML数据过来,请使用PostMan工具调试。
3,微信回调的接口中完成更改商户数据库的订单状态,操作成功给微信返回xml数据,这样微信后台就认为这笔订单交易成功,不会再次回调接口。
详情参考微信API接口说明:
更改商户数据库的订单状态:

DBHelper类,引用多数据库底层接口IDatabase。

参考:C#多数据库组件包支持MSSQL+Oracle+MySQL+用户操作手册
C# Code:
using CSFramework.DB;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
/// DBHelper数据层
/// </summary>
public static class DBHelper
{
//日志数据库
private static IDatabase CreateLogDB()
{
string conn_log = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["Simidata_LogDB"].ToString();
return DatabaseFactory.CreateDatabase(DatabaseType.SqlServer, conn_log);
}
//业务数据库
private static IDatabase CreateSimidataDB()
{
string conn_log = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["Simidata"].ToString();
return DatabaseFactory.CreateDatabase(DatabaseType.SqlServer, conn_log);
}
/// <summary>
/// 写日志
/// </summary>
/// <param name="logType">日志类型</param>
/// <param name="content">内容</param>
/// <param name="ip">IP</param>
public static void WriteLog(string logType, string content, string ip)
{
string sql = "INSERT INTO dbo.sys_Log(TS,IP,LogType,LogContent) SELECT GETDATE(),@IP,@LogType,@LogContent";
IDatabase db = CreateLogDB();
CommandHelper cmd = db.CreateCommand(sql);
cmd.AddParam("@IP", ip);
cmd.AddParam("@LogType", logType);
cmd.AddParam("@LogContent", content);
db.ExecuteCommand(cmd.Command);
}
/// <summary>
/// 更新本地数据库订单状态
/// </summary>
/// <param name="orderID">订单编号</param>
/// <param name="success">true/false</param>
/// <param name="WxTransactionID">微信交易号</param>
/// <param name="amount">金额(分)</param>
/// <returns></returns>
public static bool UpdateOrderState(string orderID, bool success, string WxTransactionID, int amount)
{
string sql = "UPDATE dbo.tb_PayTransList SET FlagTrans=2,WxCallbackTime=GETDATE(),WxTransactionID=@WxTransactionID WHERE MerID=@MerID AND Amount*100=@Amount";
IDatabase db = CreateSimidataDB ();
CommandHelper cmd = db.CreateCommand(sql);
cmd.AddParam("@WxTransactionID", WxTransactionID);
cmd.AddParam("@MerID", orderID);
cmd.AddParam("@Amount", amount);
int i = db.ExecuteCommand(cmd.Command);
return i == 1;
}
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
using CSFramework.DB;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
/// DBHelper数据层
/// </summary>
public static class DBHelper
{
//日志数据库
private static IDatabase CreateLogDB()
{
string conn_log = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["Simidata_LogDB"].ToString();
return DatabaseFactory.CreateDatabase(DatabaseType.SqlServer, conn_log);
}
//业务数据库
private static IDatabase CreateSimidataDB()
{
string conn_log = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["Simidata"].ToString();
return DatabaseFactory.CreateDatabase(DatabaseType.SqlServer, conn_log);
}
/// <summary>
/// 写日志
/// </summary>
/// <param name="logType">日志类型</param>
/// <param name="content">内容</param>
/// <param name="ip">IP</param>
public static void WriteLog(string logType, string content, string ip)
{
string sql = "INSERT INTO dbo.sys_Log(TS,IP,LogType,LogContent) SELECT GETDATE(),@IP,@LogType,@LogContent";
IDatabase db = CreateLogDB();
CommandHelper cmd = db.CreateCommand(sql);
cmd.AddParam("@IP", ip);
cmd.AddParam("@LogType", logType);
cmd.AddParam("@LogContent", content);
db.ExecuteCommand(cmd.Command);
}
/// <summary>
/// 更新本地数据库订单状态
/// </summary>
/// <param name="orderID">订单编号</param>
/// <param name="success">true/false</param>
/// <param name="WxTransactionID">微信交易号</param>
/// <param name="amount">金额(分)</param>
/// <returns></returns>
public static bool UpdateOrderState(string orderID, bool success, string WxTransactionID, int amount)
{
string sql = "UPDATE dbo.tb_PayTransList SET FlagTrans=2,WxCallbackTime=GETDATE(),WxTransactionID=@WxTransactionID WHERE MerID=@MerID AND Amount*100=@Amount";
IDatabase db = CreateSimidataDB ();
CommandHelper cmd = db.CreateCommand(sql);
cmd.AddParam("@WxTransactionID", WxTransactionID);
cmd.AddParam("@MerID", orderID);
cmd.AddParam("@Amount", amount);
int i = db.ExecuteCommand(cmd.Command);
return i == 1;
}
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
使用PostMan测试notify_url地址:

必须返回XML格式的数据给微信服务器:
C# Code:
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
</xml>
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
</xml>
商户本地数据库的日志信息:


C#微信支付完成前端回调通知notify_url完整版源码
.NET WebApi开发框架|微信小程序后端开发框架-标准版V1.0




一、产品介绍
CSFramework.WebApi是服务端快速开发框架(后端框架),借助ASP.NET WebAPI底层架构的强大编程能力,封装成为可复用的以及可定制开发的服务端软件模板,CSFramework.WebApi提供可复用的软件架构和开发包,为用户快速轻松搭建基于HTTP协议、HTTPS协议以及支持多种客户端(如:APP、B/S、C/S、微信公众号、微信小程序等)各种跨平台移动终端的服务端应用程序。
服务端应用开发、后端接口开发是软件项目重要工作环节,服务端注重业务逻辑、数据处理和数据分析、算法等方面的设计和服务,前端主要体现在用户体验、界面操作和数据采集方面。前端软件系统和后端服务架构共同搭建跨平台大型数据管理应用系统。

扫一扫加作者微信


版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网