.net 支付宝接口

转载地址:http://bbs.csdn.net/topics/370260628


很早以前我在CSDN论坛上问过这个问题,一个项目中同时使用这两个接口的问题。
终于有时间上来逛逛,分享下支付宝接口示例,给不会的朋友做个介绍,会的朋友请不要喷,谢谢合作!

首先当项目中需要支付宝接口的时候,人家会给你一个Demo,里边代码很重要,基本都可以拿来复制黏贴,只需
改下参数而已。
2个接口的类是一样的,所以需要放在2个文件夹中,你也可以放在类库中。我是这样放的



App中是支付接口的类,外部是登录接口的类
首先需要把阴影的类中的几个参数修改下

        static Config()
        {
            //↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

            //合作身份者ID,以2088开头由16位纯数字组成的字符串
            partner = "2088601323326437";

            //交易安全检验码,由数字和字母组成的32位字符串
            key = "";

            //签约支付宝账号或卖家支付宝帐户
            seller_email = "";

            //页面跳转同步返回页面文件路径 要用 http://格式的完整路径,不允许加?id=123这类自定义参数
            return_url = "http://ozmb.inicp.com/zfbreturn.aspx";

            //服务器通知的页面文件路径 要用 http://格式的完整路径,不允许加?id=123这类自定义参数
            notify_url = "http://ozmb.inicp.com/zfbreturn.aspx";


说明部分很清楚,我就不解释了
其他部分都不需要动!
支付宝快捷登录
这个接口很简单,2个页面,一个Send,一个return页面


using Com.Alipay;
///Send页面,除了我的判断,其他都可以复制黏贴,类的引用要注意,根据你的文件夹所在来引用
public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["Member_Info"] == null && Session["App"]==null)
        {
            string anti_phishing_key = "";
            //获取客户端的IP地址,建议:编写获取客户端IP地址的程序
            string exter_invoke_ip = "";
            //注意:
            //请慎重选择是否开启防钓鱼功能
            //exter_invoke_ip、anti_phishing_key一旦被设置过,那么它们就会成为必填参数
            //建议使用POST方式请求数据
            //示例:
            //exter_invoke_ip = "";
            //Service aliQuery_timestamp = new Service();
            //anti_phishing_key = aliQuery_timestamp.Query_timestamp();               //获取防钓鱼时间戳函数

            

            //把请求参数打包成数组
            SortedDictionary<string, string> sParaTemp = new SortedDictionary<string, string>();
            sParaTemp.Add("anti_phishing_key", anti_phishing_key);
            sParaTemp.Add("exter_invoke_ip", exter_invoke_ip);

            //构造快捷登录接口表单提交HTML数据,无需修改
            Service ali = new Service();
            string sHtmlText = ali.Alipay_auth_authorize(sParaTemp);
            Response.Write(sHtmlText);
        }
        else if (Session["Member_Info"] != null)
        {
            Response.Write("<script>alert('你已经登录,请先退出在进行支付宝登录!');location.href='index.aspx';</script>");
        }
        else if (Session["App"] != null)
        {
            Response.Write("<script>alert('你已经登录过了!');location.href='index.aspx';</script>");
        }
    }
}

//下边是返回页面return。一个泛型方法不要忘记。除了我的判断其他可以直接复制黏贴
using Com.Alipay;

public partial class zfblogin : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        { 
             SortedDictionary<string, string> sPara = GetRequestGet();

             if (sPara.Count > 0)//判断是否有带返回参数
             {
                 Notify aliNotify = new Notify();
                 bool verifyResult = aliNotify.Verify(sPara, Request.QueryString["notify_id"], Request.QueryString["sign"]);

                 if (verifyResult)//验证成功
                 {
                     /
                     //请在这里加上商户的业务逻辑程序代码

                     //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
                     //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
                     string user_id = Request.QueryString["user_id"];//支付宝用户id
                     string token = Request.QueryString["token"];	//授权令牌
                     Label4.Text = user_id.ToString();
                     Session["token"] = token;
                     Session["App"] = user_id;
                 }
                 else {
                     Response.Write("<script>alert('登录失败');location.href='index.aspx'</script>");
                 }
             }
             else
             {
                 Response.Write("<script>alert('登录失败');location.href='index.aspx'</script>");
             }

        }
    }
    public SortedDictionary<string, string> GetRequestGet()
    {
        int i = 0;
        SortedDictionary<string, string> sPara = new SortedDictionary<string, string>();
        NameValueCollection coll;
        //Load Form variables into NameValueCollection variable.
        coll = Request.QueryString;

        // Get names of all forms into a string array.
        String[] requestItem = coll.AllKeys;

        for (i = 0; i < requestItem.Length; i++)
        {
            sPara.Add(requestItem[i], Request.QueryString[requestItem[i]]);
        }

        return sPara;
    }
}




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在ASP.NET MVC中调用支付支付的API接口,需要执行以下步骤: 1. 注册并获取支付开发者账号,并创建应用程序,获取应用程序的APPID、商户私钥和支付公钥。 2. 在MVC项目中添加支付SDK的引用,可以使用Nuget安装“Alipay.AopSdk”。 3. 创建一个Controller,并在其中编写一个Action方法,用于处理支付支付请求。 4. 在Action方法中,构造一个AlipayTradePagePayModel对象,设置支付参数,包括订单号、订单金额、商品名称等。 5. 创建一个AlipayTradePagePayRequest对象,将AlipayTradePagePayModel对象作为参数传入,并设置其他请求参数。 6. 调用AlipayClient的Execute方法,将AlipayTradePagePayRequest对象作为参数传入,即可向支付发起支付请求。 7. 处理支付返回的支付结果,包括成功、失败和未知状态等,并更新订单状态。 下面是一个简单的示例代码: ```csharp public ActionResult Alipay() { // 初始化AlipayClient IAopClient client = new DefaultAopClient( "https://openapi.alipay.com/gateway.do", "APPID", "商户私钥", "json", "1.0", "RSA2", "支付公钥", "utf-8", false); // 构造AlipayTradePagePayModel对象 AlipayTradePagePayModel model = new AlipayTradePagePayModel { OutTradeNo = "订单号", TotalAmount = "订单金额", Subject = "商品名称", Body = "商品描述", ProductCode = "FAST_INSTANT_TRADE_PAY" }; // 构造AlipayTradePagePayRequest对象 AlipayTradePagePayRequest request = new AlipayTradePagePayRequest { ReturnUrl = "支付完成后跳转的页面", NotifyUrl = "支付结果异步通知的页面" }; request.SetBizModel(model); try { // 调用支付API AlipayTradePagePayResponse response = client.Execute(request); if (response.Code == "10000" && response.Body != null) { // 处理支付返回的结果 // ... return Content(response.Body); } else { // 处理支付返回的错误信息 // ... return Content("支付支付失败"); } } catch (Exception ex) { // 处理异常 // ... return Content("支付支付异常:" + ex.Message); } } ``` 注意:以上代码仅为示例,需要根据实际情况修改参数和处理方式。同时,支付API的使用需要遵循支付的开发文档和规范。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值