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

  微信支付后台服务器返回的接口通知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框架网|原创作品.质量保障.竭诚为您服务





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

评论内容
昵称:
关联文章

支付后台服务器返回接口通知notify_url(接口设计)-C/S框架
C#支付完成前端通知notify_url完整版源码|CSframework.com原创文章
CSFramework WebApi服务端框架开发支付接口成功案例
CSFramework WebApi服务端框架开发支付接口成功案例
C#.NET短通用接口设计-调用短API案例|C/S框架
WebApi后端框架服务端框架开发小程序订阅消息接口
小程序后端框架|公众号后端框架C# WebAPI)
CSFramework.WebApi框架快速搭建后端服务支持APP、B/SC/S小程序、公众号、Web客户端
VS.NET后端框架C#.NET开发服务器端开发框架 - C/S框架
C/S服务器框架WCF框架 - C/S框架
小程序后端框架 | C# ASP.NET服务端WebApi快速开发框架平台
[转帖]C#如何调用非托管函数(三)-实现函数
基于C/S三层架构WCF开发框架接口调用流程|C/S框架
C# C/S框架高级搜索功能-接口设计
软件开发与设计 - EMS-电子商城系统-小程序商城+java后台数据库表结构
C/S开发框架标准版-后台数据更新dalBase类(UML图及方法介绍)
.NET WebApi后端开发框架-小程序消息订阅与推送案例详解
使用WebApi框架开发小程序后端程序详细设计说明书模板docx文件
原创产品-小程序APP服务端WebApi开发框架
C#推送URL链接到百度搜索资源平台快速收录URL网址