C#实现支付宝沙箱支付的项目实践

目录
  • 一,准备沙箱环境
  • 二,认识官方提供的Demo示例
  • 三,编写一个ASP.NET的程序
  • 四,开始测试

一,准备沙箱环境

1,登录支付宝,进入 应用列表界面 https://openhome.alipay.com/dev/workspace

2,如下图选择进入沙箱

进入如下页面:

1,这里的APPID很有用
2,在这里只测试网页支付,用系统默认的密钥
3,查看公钥有如下界面:

需要用到的是应用私钥(非JAVA)和支付宝公钥

二,认识官方提供的Demo示例

1,下载demo示例
进入网页 https://opendocs.alipay.com/open/270/106291

下载.NET版的demo,如下:

App_Code下有Config.cs文件

关于参数:
1,app_id 就填写沙箱界面的APPID
2,需要将gatewayUrl 改为:https://openapi.alipaydev.com/gateway.do 这才是测试版本
3,商户私钥 复制沙箱界面系统默认密钥的 应用私钥
4,支付宝公钥 复制沙箱界面的支付宝公钥

  • wappay里是具体的调用API接口
  • wappay是发送调用支付接口
  • close是关闭订单接口
  • query是查询订单接口
  • refund是退款接口

三,编写一个ASP.NET的程序

1,创建ASP.NET web项目
2,解决方案导入Demo示例中的AopSdk模块,如下:

3,前台代码:

<table>
                <tr>
                    <td>订单名称:</td>
                    <td>
                        <asp:TextBox ID="tbxOrderName" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>订单金额:</td>
                    <td>
                        <asp:TextBox ID="tbxOrderAmount" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>订单描述:</td>
                    <td>
                        <asp:TextBox ID="tbxOrderDesc" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <asp:Button ID="btn" runat="server" Text="支付"  OnClick="btn_Click"/>
                    </td>
                </tr>
            </table>

4,后台代码:

// 应用ID,您的APPID
        public static string app_id = "20210******";
        // 支付宝网关
        public static string gatewayUrl = "https://openapi.alipaydev.com/gateway.do";
        // 商户私钥,您的原始格式RSA私钥
        public static string private_key = "MIIE******";
        // 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
        public static string alipay_public_key = "MIIBI******";
        // 签名方式
        public static string sign_type = "RSA2";
        // 编码格式
        public static string charset = "UTF-8";

        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btn_Click(object sender, EventArgs e)
        {
            DefaultAopClient client = new DefaultAopClient(gatewayUrl, app_id, private_key, "json", "1.0", sign_type, alipay_public_key, charset, false);

            // 外部订单号,商户网站订单系统中唯一的订单号
            string out_trade_no = DateTime.Now.ToString("yyyyMMddHHmmss");
            // 订单名称
            string subject = this.tbxOrderName.Text;
            // 付款金额
            string total_amout = this.tbxOrderAmount.Text;
            // 商品描述
            string body = this.tbxOrderDesc.Text;
            // 支付中途退出返回商户网站地址
            string quit_url = "https://localhost:44334/PayFailed.aspx?tradeNo=" + out_trade_no;
            // 支付成功返回商户网站页面
            string return_url = "https://localhost:44334/PaySuccess.aspx?tradeNo=" + out_trade_no;
            // 设置支付完成异步通知接收地址
            string notify_url = "https://localhost:44334/Notify.aspx";

            // 组装业务参数model
            AlipayTradeWapPayModel model = new AlipayTradeWapPayModel();
            model.Body = body;
            model.Subject = subject;
            model.TotalAmount = total_amout;
            model.OutTradeNo = out_trade_no;
            model.ProductCode = "QUICK_WAP_WAY";
            model.QuitUrl = quit_url;

            AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
            // 设置支付完成同步回调地址
            request.SetReturnUrl(return_url);
            // 设置支付完成异步通知接收地址
            request.SetNotifyUrl(notify_url);
            // 将业务model载入到request
            request.SetBizModel(model);

            AlipayTradeWapPayResponse response = null;
            try
            {
                response = client.pageExecute(request, null, "post");
                Response.Write(response.Body);
            }
            catch (Exception exp)
            {
                throw exp;
            }

说明:
1,这里的app_id等配置,就是来源于 Demo示例中的config.cs文件 需要从自己的支付宝沙箱中将相应的值复制进来
2,https://localhost:44334 这个地址和端口号是当前自己的项目的端口号
3,分别建立PaySuccess.aspx PayFailed.aspx 两个个窗体 分别用于支付成功和失败的跳转页面
4,Notify.aspx用于支付成功的异步通知用,可以不加

四,开始测试

调用成功,则进入如下界面

点击继续浏览器付款

点击支付宝账号登录

注意!这里不是真实的支付宝账号,需要用沙箱环境的支付宝账号,在沙箱界面中找:

支付成功后,点击右上角完成,则进入代码中设定的PaySuccess.aspx页面,同时也将订单编号等信息带过去。

至此,模拟支付成功,更多相关C# 支付宝沙箱支付内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • .NET C#支付宝条码支付接口详解

    支付宝条码支付接口使用,供大家参考,具体内容如下 应用场景实例 收银员使用扫码设备读取用户支付宝钱包"付款码"后,将二维码或条码信息通过本接口上送至支付宝发起支付. SDK下载 支付宝提供3种开发语言的SDK,选择自己的开发语言下载,项目中会有很多示例.本文选择.NET2010版本. 将SDK项目中的AopSdk.dll文件引用到自己的项目中. 支付类代码 简略版 数据需自行获取 public class ToAlipayBLL { private static readonly To

  • C#支付宝新版支付请求接口调用

    本文实例为大家分享了C#支付宝新版支付请求接口调用的具体代码,供大家参考,具体内容如下 因为支付宝已经集成了完整的SDK,所以可以使用SDK直接调用API,这里获取SDK源码. 首先我们需要引用支付宝SDK集成 AopSdk.dll. 添加相关引用: using Aop.Api; using Aop.Api.Domain; using Aop.Api.Request; using Aop.Api.Response; 需要用到商户私钥,支付宝公钥,请求地址等公共参数,所以可以新建一个config文

  • 基于C#实现微信支付宝扫码支付功能

    为公司系统业务需要,这几天了解了一下微信和支付宝扫码支付的接口,并用c#实现了微信和支付宝扫码支付的功能. 微信支付分为6种支付模式:1.付款码支付,2.native支付,3.jsapi支付,4.app支付,5.h5支付,6.小程序支付 我在这里用到的是native支付,就是网页生成二维码让用户扫码支付,再调用回调接口判断用户是否支付成功. 支付宝支付api也挺多的,我只使用了一些我在系统中能够用到的,现在将代码简单记录在这里,先从微信支付开始. 微信支付 先上后台代码: 传入参数(总金额一定要

  • c# 实现的支付宝支付

    C#支付宝扫码支付示的具体代码,供大家参考,具体内容如下 using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Web; namespace ZK_ECommerce.Shop.pay.alipay { public class AliPay { public static stri

  • C#支付宝扫码支付代码完整版

    本文实例为大家分享了C#支付宝扫码支付示的具体代码,供大家参考,具体内容如下 支付宝工具类 using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Web; namespace ZK_ECommerce.Shop.pay.alipay { public class AliPay { p

  • C#实现支付宝沙箱支付的项目实践

    目录 一,准备沙箱环境 二,认识官方提供的Demo示例 三,编写一个ASP.NET的程序 四,开始测试 一,准备沙箱环境 1,登录支付宝,进入 应用列表界面 https://openhome.alipay.com/dev/workspace 2,如下图选择进入沙箱 进入如下页面: 1,这里的APPID很有用2,在这里只测试网页支付,用系统默认的密钥3,查看公钥有如下界面: 需要用到的是应用私钥(非JAVA)和支付宝公钥 二,认识官方提供的Demo示例 1,下载demo示例进入网页 https:/

  • SpringBoot集成支付宝沙箱支付(支付、退款)

    前言 支付宝推出一个沙箱环境,能够很好的模拟支付宝支付,并且还提供了demo,但demo是一个普通web项目,怎么整合到Spring Boot项目呢,其实很简单 简单配置请参照支付宝沙箱支付开发文档 一.支付部分 AlipayConfig配置:我使用的是页面跳转同步通知,返回路径return_url为公网访问地址,也可以使用localhost,且不能携带参数,APPID.商户私钥.支付宝公钥和支付宝网关换为自己的. public class AlipayConfig{ // 应用ID,您的APP

  • Vue+SpringBoot实现支付宝沙箱支付的示例代码

    首先去下载支付宝沙箱的一系列东西,具体的配置什么的我就不说了,有很多博客都讲了,还有蚂蚁金服官方也说的很详细,我就直接说怎么样把后端的支付页面显示到Vue前端来: 在你配置好AlipayConfig这个文件后,就可以写前端的逻辑了,前端是采用支付宝的页面如下: 下面展示一些 内联代码片. /* 以下是支付确认html */ <div style="text=#000000 bgColor=#ffffff leftMargin=0 topMargin=4"> <head

  • SpringBoot集成支付宝沙箱支付的实现示例

    目录 开发前准备 1.密钥工具 2.沙箱环境 3.内网穿透工具 代码集成 1.Java SDK 2.支付宝配置 3.支付和回调接口 4.前端Vue调用 开发前准备 1.密钥工具 在线工具地址:https://miniu.alipay.com/keytool/create 无需下载,直接在线生成你的应用私钥 点击生成即可生成自己的公钥和私钥 这个公钥后面会用到叫做alipayPublicKey 这个私钥后面会用到叫做appPrivateKey 如果遇到生成失败点击链接选择Web在线加密https:

  • python3 wechatpy微信支付的项目实践

    目录 1.公众号申请及配置流程 2.python wechatpy操作 记录一下微信支付整个流程 1.公众号申请及配置流程 使用微信支付的前提是必须要有公众号. 申请链接: 微信公众号申请.记得选择服务号,根据操作提示完成资料填写配置公众号参数(JS接口设置,ip白名单设置,关联商户,微信支付申请,获取开发者ID(AppID),开发者密码(AppSecret),商户号id,商户号秘钥,证书和证书秘钥) JS接口设置:由于最终是前端调起JSAPI支付,所以得配置下前端域名. 2.ip白名单设置,获

  • Golang实现支付宝沙箱支付的方法步骤

    首先我使用的是 gin 作为我的后端框架,我们先设定好几个接口. func main() { r := gin.Default() r.GET("/pay", tools.WebPageAlipay) r.GET("/return", tools.AliPayNotify) r.Run(":8100") } github.com/smartwalle/alipay 这个第三方库来作为定义了很多支付宝接口,我们直接使用这个库来继续我们的开发. 首先

  • Java开发支付宝PC支付完整版

    一:准备工作 1:如没有账号的请先去 支付宝商户平台 注册商户号 2:开发前需要导入支付宝SDK 支付宝SDK下载链接 Maven依赖也在里面 3:生成支付宝密钥.公钥,需要用到支付宝密钥生成工具 密钥生成工具下载链接 ,密钥用于签名使用 4:电脑网站支付结果异步通知(关于支付结果异步通知后续会专门写一个博客,需要重点注意) 注意:请先详细查看官方文档按步骤开发,一切以官方文档为主 支付宝官方开发文档,如使用老接口请移步 老版即时到账文档 5:测试的时候一定要使用内网穿透软件,否则会报错 二:开

  • Java如何实现支付宝电脑支付基于servlet版本

    这篇文章主要介绍了Java如何实现支付宝电脑支付基于servlet版本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 前期准备: 蚂蚁金融开放平台进行登录操作 进入我的开放平台 在上方找到沙箱,进入沙箱(网络编程虚拟执行环境). 这里的RSA2密钥设置下,我已经设置好了,所以便有了支付宝公钥(公钥是对外公开的,私钥是自己保留的具体的不多做解释) 至于RSA2密钥的生成,可参考如下操作: 生成后在工具文件夹如下路径可以查看自己生成的公钥和私钥一对

  • 三分钟python搭建支付宝三方支付

    目录 为什么使用三方支付? 支付宝支付的流程 配置流程 1.获取APPID 2.在线生成密钥 3.获取公钥 python项目中集成支付宝 总结 为什么使用三方支付?   再没有三方支付平台之前,用户发起支付请求的时候,用户要去和银行签约(转账),特别的不方便,为了解决这些问题,就有了三方支付,三方平台去完成签约,给用户节省时间. 支付宝支付的流程   商户拿到支付宝的公钥.自己的私钥(私钥加密.公钥解密),用私钥请求支付宝,支付宝解密.验签.进行支付处理,支付宝将处理的返回值传给商户,当支付成功

  • Java利用沙箱支付实现电脑扫码支付教程

    目录 一.准备工作 二.效果展示 三.实现代码 3.1 后台代码 3.2 前台代码 一.准备工作 1.注册支付宝开放平台账号,成为开发者. 地址:https://open.alipay.com/platform/home.htm 2.进入沙箱,进行配置. 3.我们可以看到这个界面 4.后面需要使用的参数 APPID 商户私钥(使用系统默认密钥的公钥模式,点击查看获取) 支付宝公钥 支付宝网关 5.手机上下载沙箱支付宝 (到时候支付用这个支付宝支付) 6.下载好支付宝沙箱版后,登录支付宝提供的账号

随机推荐