支付宝接口开发

来源:互联网 发布:java编程入门 编辑:程序博客网 时间:2024/04/27 12:31

支付宝的接口开发使用的技术含量并不高!因为使用的是HTTP普通GET和Post方式传递数据,而这些数据是传给您的程序由您的程序任意处理和支付宝服务器处理,所以重点在再流程和传参!

    推荐两文:1、支付宝购买流程 2、支付宝卖家流程

    支付宝接口提供最新的ASP、ASP.NET、PHP、JSP等目前网络上最流行的源码包文件,程序员可以下载后按本文介绍更改参数和布置即可!而本文拿ASP.NET(C#)详细介绍。

-------------------------------------------------------------------------------------    摘自:支付宝官方

    点击下载 实物商品交易服务集成技术文档和服务介绍 按照文档中的提示进行集成操作。

四种不同语言的支付宝接口程序,下载地址是:(直接点击下载)

asp实物物品交易接口

aspx.net实物物品交易接口(utf-8)

aspx.net实物物品交易接口(gbk)

jsp实物物品交易接口(gbk)

jsp实物物品交易接口(utf-8)

php实物物品交易接口(链接到论坛其他帖子)

将service改成create_digital_goods_trade_p,费用,通知返回地址等即可实现实物交易,详细参数请自行设定

将service改成trade_create_by_buyer,修改物流方式以及费用等即可实现实物交易,详细参数请自行设定

将service改成create_donate_trade_p,total_fee费用等即可实捐赠项目,详细参数请自行 设定

提醒:如需签约使用支付宝收款接口及权限,欢迎联系您的客户经理或点此申请

---------------------------------------------------------------------------------------

其中,如果产品多了,建议使用订单号做为主题(subject)。推荐大家详细查看原码,细心设置其参数,才会运行正常,请原谅支付宝为了安全而周全的检测 :)

Default.aspx  为提交页面,相当与购物车提交后生成定单后,向支付宝发送的页面

alipay_Notify.aspx是接收支付宝通知的URL地址,

alipay_Return.aspx是支付完成后跳转的URL地址。

代码段:

HTML Code

<%@ Page language="c#" Codebehind="Default.aspx.cs" AutoEventWireup="false" Inherits="shiwuUTF_8aspx03._Default" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<HTML>

    <HEAD>

        <title>Default</title>

        <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">

        <meta content="C#" name="CODE_LANGUAGE">

        <meta content="JavaScript" name="vs_defaultClientScript">

        <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">

    </HEAD>

    <body MS_POSITIONING="GridLayout">

        <form id="Form1" method="post" runat="server">

            <div style="TEXT-ALIGN: center"><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">支付网关:</span><asp:textbox id="T_gateway" runat="server" Text="https://www.alipay.com/cooperate/gateway.do?"

                    Width="350px"></asp:textbox><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">服务参数:<asp:dropdownlist id="T_service" runat="server" Width="357px">

                        <asp:ListItem>trade_create_by_buyer</asp:ListItem>

                    </asp:dropdownlist></span><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">合作商: </span>

                <asp:textbox id="T_partner" runat="server" Text="必须,支付宝中心获得" Width="350px"></asp:textbox><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">加密协议:</span><asp:textbox id="T_sign_type" runat="server" Text="MD5" Width="350px"></asp:textbox><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">商品名称:</span><asp:textbox id="T_subject" runat="server" Text="bbs.jishu.me" Width="350px"></asp:textbox><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">商品描述:</span><asp:textbox id="T_body" runat="server" Text="aaa" Width="350px">技术迷</asp:textbox><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">支付类型:</span><asp:textbox id="T_payment_type" runat="server" Text="1" Width="350px"></asp:textbox><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">单 价 :  </span><asp:textbox id="T_total_fee" runat="server" Text="0.01" Width="350px"></asp:textbox><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">数 量 :  </span><asp:textbox id="TextBox1" runat="server" Text="1" Width="350px"></asp:textbox><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">平 邮 :  </span><asp:textbox id="TextBox2" runat="server" Text="8" Width="350px"></asp:textbox><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">快 递 :  </span><asp:textbox id="TextBox3" runat="server" Text="15" Width="350px"></asp:textbox><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">展示地址:</span><asp:textbox id="T_show_url" runat="server" Text="" Width="350px">http://bbs.jishu.me</asp:textbox><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">卖家账号:</span><asp:textbox id="T_seller_email" runat="server" Text="bobby96333@gmail.com" Width="350px"></asp:textbox><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">安全校验码:</span><asp:textbox id="T_key" runat="server" Text="注:商家签约后在支付宝会员中心里面可以获得" Width="350px"></asp:textbox><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">重定下地址:</span><asp:textbox id="T_return_url" runat="server" Text="http://60.191.43.90/temp/Alipay_Return.aspx"

                    Width="350px">http://bbs.jishu.me/alipay/Alipay_Return.aspx</asp:textbox><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">服务器通知地址:</span><asp:textbox id="T_notify_url" runat="server" Text="http://60.191.43.90/temp/Alipay_Notify.aspx"

                    Width="350px">http://bbs.jishu.me/alipay/Alipay_Notify.aspx</asp:textbox><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">服务器编码:</span><asp:textbox id="T_inputchatset" runat="server" Text="utf-8" Width="350px"></asp:textbox><br>

                <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">

                    <asp:button id="Button1" runat="server" Text="支付宝付款"></asp:button> </span></div>

        </form>

    </body>

</HTML>

 

C# Code

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Configuration;

using System.Web.Security;

using shiwuUTF_8aspx03.App_Code;

namespace shiwuUTF_8aspx03

{

    /// <summary>

    /// _Default 的摘要说明。

    /// </summary>

    public class _Default : System.Web.UI.Page

    {

        #region 页面控件

        protected System.Web.UI.WebControls.TextBox T_gateway;

        protected System.Web.UI.WebControls.DropDownList T_service;

        protected System.Web.UI.WebControls.TextBox T_partner;

        protected System.Web.UI.WebControls.TextBox T_sign_type;

        protected System.Web.UI.WebControls.TextBox T_subject;

        protected System.Web.UI.WebControls.TextBox T_body;

        protected System.Web.UI.WebControls.TextBox T_payment_type;

        protected System.Web.UI.WebControls.TextBox T_total_fee;

        protected System.Web.UI.WebControls.TextBox TextBox1;

        protected System.Web.UI.WebControls.TextBox TextBox2;

        protected System.Web.UI.WebControls.TextBox TextBox3;

        protected System.Web.UI.WebControls.TextBox T_show_url;

        protected System.Web.UI.WebControls.TextBox T_seller_email;

        protected System.Web.UI.WebControls.TextBox T_key;

        protected System.Web.UI.WebControls.TextBox T_return_url;

        protected System.Web.UI.WebControls.TextBox T_notify_url;

        protected System.Web.UI.WebControls.TextBox T_inputchatset;

        protected System.Web.UI.WebControls.Button Button1;

        #endregion

   

        private void Page_Load(object sender, System.EventArgs e)

        {

            // 在此处放置用户代码以初始化页面

            #region 可以在此处设置接值,也可以把Button1_Click里的代码发在这里,然后立即跳转

            if(!IsPostBack)

            {

            }

            #endregion

        }

        #region Web 窗体设计器生成的代码

        override protected void OnInit(EventArgs e)

        {

            //

            // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。

            //

            InitializeComponent();

            base.OnInit(e);

        }

       

        /// <summary>

        /// 设计器支持所需的方法 - 不要使用代码编辑器修改

        /// 此方法的内容。

        /// </summary>

        private void InitializeComponent()

        {   

            this.Button1.Click += new System.EventHandler(this.Button1_Click);

            this.Load += new System.EventHandler(this.Page_Load);

        }

        #endregion

        #region 支付按钮事件

        private void Button1_Click(object sender, System.EventArgs e)

        {

            //按支付时间构造订单号;

            System.DateTime currentTime=new System.DateTime();

            //取时间

            currentTime=System.DateTime.Now;

            string out_trade_no = currentTime.ToString("g");

            //去订单号里的-

            out_trade_no = out_trade_no.Replace("-", "");

            //去订单号里的:

            out_trade_no = out_trade_no.Replace(":", "");

            //去订单号里的空格

            out_trade_no = out_trade_no.Replace(" ", "");

            //业务参数赋值;

            string gateway = T_gateway.Text;    //默认值不要改支付接口https://www.alipay.com/cooperate/gateway.do?

            /*create_flower_direct_pay_by_user鲜花接口

              create_digital_goods_trade_p虚拟接口

              create_direct_pay_by_user即时到帐接口*/

            string service = T_service.SelectedItem.Text;//trade_create_by_buyer实物接口,也可以设置为其他值

            string partner = T_partner.Text;        //partner        合作伙伴ID            保留字段

            string sign_type = T_sign_type.Text;    //MD5类型加密

            string subject =  T_subject.Text;    //subject        商品名称

            string body = T_body.Text;        //body            商品描述   

            string payment_type = T_payment_type.Text;                  //支付类型:1为商品购买,2为服务购买,3为网络拍卖,4为捐赠,5为邮费补偿,6为奖金,15为鲜花购买   

            string price = T_total_fee.Text;          //单价可以在Page_Load事件里设置接值

            string quantity = TextBox1.Text;        //商品数量       

            string show_url =Server.UrlEncode( T_show_url.Text);        //商品展示地址

            string seller_email = T_seller_email.Text;            //卖家支付宝账号

            string key = T_key.Text;              //partner账户的支付宝安全校验码

            string return_url = T_return_url.Text; //服务器通知返回接口,通过get方式接受支付完成后的返回信息

            string notify_url =T_notify_url.Text; //服务器通知返回接口,通过post方式接受支付完成后的返回信息

            string _input_charset = T_inputchatset.Text; //页面编码方式,有utf-8和gbk,此处是utf-8

            //物流类型:VIRTUAL为虚拟物品,POST为平邮,EMS为EMS快递,

            string logistics_type = "POST";

            string logistics_fee = TextBox2.Text;

            string logistics_payment = "BUYER_PAY";

            string logistics_type_1 = "EXPRESS";

            string logistics_fee_1 = TextBox3.Text;

            string logistics_payment_1 = "BUYER_PAY";

            AliPay ap = new AliPay();

            string aliay_url=ap.CreatUrl(

                gateway,

                service,

                partner,

                sign_type,

                out_trade_no,

                subject,

                body,

                payment_type,

                price,

                show_url,

                seller_email,

                key,

                return_url,

                _input_charset,

                notify_url,

                logistics_type,

                logistics_fee,

                logistics_payment,

                logistics_type_1,

                logistics_fee_1,

                logistics_payment_1,

                quantity

                );

     

            Response.Redirect(aliay_url);

        }

        #endregion

    }

}

提示:请多查看备注,并进行定义。比如快递和平邮选择由“logistics_type”参数设置。

原创粉丝点击