支付宝接口-即时到账


准备工作

平台参数

订单参数

必填参数

  • payment_type: 默认为1,代表即时到帐
  • out_trade_no: 自己网站订单系统中的唯一订单号匹配
  • subject: 订单名称,显示在支付宝收银台里的“商品名称”里,显示在支付宝的交易管理的“商品名称”的列表里。
  • body: 订单描述、订单详细、订单备注,显示在支付宝收银台里的“商品描述”里
  • total_fee: 订单总金额,显示在支付宝收银台里的“应付总额”里

扩展功能参数——默认支付方式

  • paymethod: 默认支付方式,取值见“即时到帐接口”技术文档中的请求参数列表
  • defaultbank: 默认网银代号,代号列表见“即时到帐接口”技术文档“附录”→“银行列表”

扩展功能参数——防钓鱼

  • anti_phishing_key: 防钓鱼时间戳
  • exter_invoke_ip: 获取客户端的IP地址,建议:编写获取客户端IP地址的程序

注意: 1.请慎重选择是否开启防钓鱼功能 2.exter_invoke_ip、anti_phishing_key一旦被设置过,那么它们就会成为必填参数 3.开启防钓鱼功能后,服务器、本机电脑必须支持远程XML解析,请配置好该环境。 4.建议使用POST方式请求数据

扩展功能参数——其他

  • extra_common_param: 自定义参数,可存放任何内容(除=、&等特殊字符外),不会显示在页面上
  • buyer_email: 默认买家支付宝账号

扩展功能参数——分润

  • royalty_type: 提成类型,该值为固定值:10,不需要修改
  • royalty_parameters: 提成信息集

注意: 与需要结合商户网站自身情况动态获取每笔交易的各分润收款账号、各分润金额、各分润说明。最多只能设置10条 各分润金额的总和须小于等于total_fee 提成信息集格式为:收款方Email_1^金额1^备注1|收款方Email_2^金额2^备注2

付费流程

    1. 通过购物车并填写完成收货地址,点击确认购买后,进入付费确认页面
    1. 付费确认页面需要先生成自己网站订单系统中的唯一订单号
    1. 向支付宝网关发出请求
    • https://mapi.alipay.com/gateway.do?{ $url_params }
    • $url_params 由平台参数订单参数合并数组后生成, 生成规则:
      • 除去数组中的空值后进行数组排序(sort)
      • 创建签名, 签名生成规则
        • 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
        • 把拼接后的字符串再与安全校验码直接连接起来
        • 将签名进行MD5加密
      • 将签名与签名类型放入请求数组
        • sign: 签名
        • sign_type: 签名类型
    • 将数组转变为url参数:key1=value1&key2=value2
    1. 支付宝会通过notify_url对参数进行验证,此步骤为异步的。
    • 获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
    • 对参数进行验证
      • 从Alipay传输过来的参数,根据请求中的签名生成方式,并和GET和POST中的sign进行对比,验证通过后会异步请求以下地址,并继续本地订单处理
      • 地址:mapi.alipay.com:443/gateway.do?service=notify_verify&partner={ $partner } &notify_id={ $notify_id }
    • 通过判断trade_status的类型,进行订单处理
      • TRADE_FINISHED

        • 判断该笔订单是否在商户网站中已经做过处理
        • 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
        • 如果有做过处理,不执行商户的业务程序

        注意: 该种交易状态只在两种情况下出现 1、开通了普通即时到账,买家付款成功后。 2、开通了高级即时到账,从该笔交易成功时间算起,过了签约时的可退款时限(如:三个月以内可退款、一年以内可退款等)后。

      • TRADE_SUCCESS

        • 判断该笔订单是否在商户网站中已经做过处理
        • 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
        • 如果有做过处理,不执行商户的业务程序

        注意: 该种交易状态只在一种情况下出现——开通了高级即时到账,买家付款成功后。

    • 返回数据,固定字符串
      • success 支付成功
      • fail 支付失败
    1. 当支付宝收到success字符串时候,支付宝完成处理支付宝订单,并跳转到return_url,此步骤是同步的
    • 验证和处理同notify_url的处理方式