微信支付后台服务器返回的接口通知notify_url(回调接口设计)-C/S框架网
作者:作者不详  发布日期:2019-04-16 10:15:23
  微信支付后台服务器返回的接口通知notify_url(回调接口设计)-C/S框架网

贴图图片-微信支付宝线上支付解决方案notify_url1


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





一、线上支付开发资料网址大全


1.1 支付宝

支付宝服务商中心 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/网站集成在线支付:


贴图图片-微信支付宝支付文档1





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


贴图图片-微信支付宝支付文档2



四、WebApi后端接口样参考


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


案例代码参考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



微信回调接口设计要求:


1,notify_url:回调通知接口HTTP地址,POST请求,不能是IP地址(必须是域名)不能带端口,预设80端口。

参考: http://www.xxxx.com/notify_url.aspx


2,必须是外网能访问HTTP地址,POST方式,微信服务器POST XML数据过来,请使用PostMan工具调试。


3,微信回调的接口中完成更改商户数据库的订单状态,操作成功给微信返回xml数据,这样微信后台就认为这笔订单交易成功,不会再次回调接口。


详情参考微信API接口说明:






更改商户数据库的订单状态:

贴图图片-微信截图_20190416095722



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

C#多数据库组件包支持MSSQL+Oracle+MySQL+用户操作手册|C/S框架网

参考: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



使用PostMan测试notify_url地址:


贴图图片-微信截图_20190416092332


必须返回XML格式的数据给微信服务器:


C# Code:

<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
</xml>



商户本地数据库的日志信息:


贴图图片-微信截图_20190416092452



C#微信支付完成前端回调通知notify_url完整版源码


C#微信支付完成前端回调通知notify_url完整版源码




.NET WebApi开发框架|微信小程序后端开发框架-标准版V1.0

适用开发 适用开发:快速构建支持多种客户端的服务端程序,支持APP、B/S、C/S跨平台移动终端等。
运行平台 运行平台:Windows + .NET Framework 4.5
开发工具 开发工具:Visual Studio 2015+,C#语言
数据库 数据库:Microsoft SQLServer 2008R2+(支持多数据库:Oracle/MySql)

WebApi服务端开发框架



 一、产品介绍


    CSFramework.WebApi是服务端快速开发框架(后端框架),借助ASP.NET WebAPI底层架构的强大编程能力,封装成为可复用的以及可定制开发的服务端软件模板,CSFramework.WebApi提供可复用的软件架构和开发包,为用户快速轻松搭建基于HTTP协议、HTTPS协议以及支持多种客户端(如:APP、B/S、C/S、微信公众号、微信小程序等)各种跨平台移动终端的服务端应用程序。 

    服务端应用开发、后端接口开发是软件项目重要工作环节,服务端注重业务逻辑、数据处理和数据分析、算法等方面的设计和服务,前端主要体现在用户体验、界面操作和数据采集方面。前端软件系统和后端服务架构共同搭建跨平台大型数据管理应用系统。 



C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务




点击下载附件 点击下载附件 (如下载失败,请邮件通知我们寄回给您,或QQ:23404761留言.)
上一篇 下一篇