- 获取安全校验码和合作身份者ID 1.用您的签约支付宝账号登录支付宝网站(www.alipay.com) 2.点击“商家服务”(https://b.alipay.com/order/myOrder.htm) 3.点击“查询合作者身份(PID)”、“查询安全校验码(Key)”
- partner: 合作身份者ID,以2088开头由16位纯数字组成的字符串
- key: 交易安全检验码,由数字和字母组成的32位字符串
- seller_email: 签约支付宝账号或卖家收款支付宝帐户
- notify_url: 支付宝服务器通知的回调页面 要用 http://格式的完整路径,不允许加?id:123这类自定义参数
- return_url: 当前页面完成支付后跳转的页面 要用 http://格式的完整路径,不允许加?id:123这类自定义参数
- 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
-
- 通过购物车并填写完成收货地址,点击确认购买后,进入付费确认页面
-
- 付费确认页面需要先生成自己网站
订单系统中的唯一订单号
- 付费确认页面需要先生成自己网站
-
- 向支付宝网关发出请求
- https://mapi.alipay.com/gateway.do?{ $url_params }
- $url_params 由
平台参数
和订单参数
合并数组后生成, 生成规则:- 除去数组中的空值后进行数组排序(sort)
- 创建签名, 签名生成规则
- 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
- 把拼接后的字符串再与
安全校验码
直接连接起来 - 将签名进行MD5加密
- 将签名与签名类型放入请求数组
- sign: 签名
- sign_type: 签名类型
- 将数组转变为url参数:key1=value1&key2=value2
-
- 支付宝会通过notify_url对参数进行验证,此步骤为异步的。
- 获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
- 对参数进行验证
- 从Alipay传输过来的参数,根据请求中的签名生成方式,并和GET和POST中的sign进行对比,验证通过后会异步请求以下地址,并继续本地订单处理
- 地址:mapi.alipay.com:443/gateway.do?service=notify_verify&partner={ $partner } ¬ify_id={ $notify_id }
- 通过判断trade_status的类型,进行订单处理
-
TRADE_FINISHED
- 判断该笔订单是否在商户网站中已经做过处理
- 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
- 如果有做过处理,不执行商户的业务程序
注意: 该种交易状态只在两种情况下出现 1、开通了普通即时到账,买家付款成功后。 2、开通了高级即时到账,从该笔交易成功时间算起,过了签约时的可退款时限(如:三个月以内可退款、一年以内可退款等)后。
-
TRADE_SUCCESS
- 判断该笔订单是否在商户网站中已经做过处理
- 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
- 如果有做过处理,不执行商户的业务程序
注意: 该种交易状态只在一种情况下出现——开通了高级即时到账,买家付款成功后。
-
- 返回数据,固定字符串
- success 支付成功
- fail 支付失败
-
- 当支付宝收到success字符串时候,支付宝完成处理支付宝订单,并跳转到return_url,此步骤是同步的
- 验证和处理同notify_url的处理方式