确认发货接口开发流程
一、开发前期准备
1.1、查找PID(partner)和密钥(key)
a、首先查询合作者身份ID和安全校验码KEY;
b、RSA加密方式:公私钥由商户技术人员生成。
(1)首先生成商户公钥、私钥;
(2)其次上传生成的公钥,同时获取支付宝公钥。
1.2、网络环境的要求
a、支付宝提供的开发环境。
(1) 生产环境。用商户自己的账户做测试。
(2)沙箱环境。提供资料沙箱环境网关地址、测试账号、密钥。
b、商户端开发环境:公网可访问的网络环境。
1.3、下载接口开发文档及配置开发环境
开发语言:支持C#、PHP、ASP、JAVA四种开发语言。
开发语言:支持http协议的开发语言。
1.4、业务术语
术语 | 解释 |
---|---|
返回 | 支付宝根据得到的数据处理完成后,支付宝将处理完成的结果信息反馈给商户网站。 |
敏感词 | 带有敏感政治倾向、暴力倾向、不健康色彩或不文明的词。 |
请求 | 通过HTTP协议把需要传输的数据发送给接收方的过程。 |
特殊字符 | 用做url转义字符,或在接口参数中用作分割符的特殊字符,包括:?、%、&、+、^、| |
二、开发联调阶段
2.1、安全说明
类型 | 细则 | 原因 |
---|---|---|
安全 | 使用签约账号进行调试,必须保护PID与安全校验码key的隐私性。 | 防止接口无法正常使用或防止签约的账号信息被盗用,导致资金受损、被他人恶意利用等。 |
测试完毕后,要把测试账号立刻更换成签约账号。 | 使用测试账号时,手续费按照3%扣除。 | |
该接口必须使用https请求 | 避免请求参数暴露 | |
支付宝的通知服务器的出口IP段是121.0.26.0/23、110.75.128.0/19、110.75.225.0/24、110.75.242.0/24。该IP段地址不是商户访问支付宝的地址。 | 如果商户网站设置了IP白名单(即IP过滤),需要把支付宝的通知IP地址加入白名单中。这里面提供的是ip段,需要商户自己算出ip。 | |
商户必须以DNS解析的方式访问支付宝接口,不要设置DNS cache,不要绑定支付宝IP。如果为了商户自身安全必须绑定支付宝IP时,必须向支付宝的技术支持人员备案。 | 支付宝IP地址一旦变更,会导致商户无法请求或访问支付宝,致使商户业务直接不可用。 |
2.2、参数说明
类型 | 细则 | 原因及样例说明 |
---|---|---|
参数配置 |
调用确认发货接口情况: 1、支付宝担保交易时,如果交易状态是“买家已付款,等待卖家发货(交易状态参数trade_status值为WAIT_SELLER_SEND_GOODS)”的情况下确认发货接口才执行成功; 2、如果交易状态不是“买家已付款,等待卖家发货”或“卖家已发货,等待买家确认”的情况下确认发货都将失败 |
避免接口使用错误 |
必须设置请求参数_input_charset(编码格式),即该参数不能为空,并让该参数加入签名运算。 | 避免接口无法正常使用 | |
trade_no支付宝交易号,支付宝根据商户请求,创建订单生成的支付宝交易号。最短16位,最长64位。 | 避免订单号不存在。 | |
logistics_name物流公司名称,必须填写 | 避免接口无法正常使用 | |
在请求参数列表中,不可空的参数必须配置。 | 避免接口无法正常使用 | |
发送给支付宝的请求,支持http协议,get和post两种请求方式 | 避免接口无法正常使用 |
2.3、签名说明
类型 | 细则 | 原因 |
---|---|---|
签名 | 请求的所有参数,需要根据参数名=参数值的格式,按首字符字典顺序(ascii值大小)排序,若遇到相同首字符,则判断第二个字符,以此类推,待签名字符串需要以“参数名1=参数值1&参数名2=参数值2&….&参数名N=参数值N”的规则进行拼接。 | 避免接口无法正常使用 |
在对请求的参数做签名时,这些参数必须来源于请求参数列表,并且除去列表中的参数sign、sign_type。 | 避免接口无法正常使用 | |
在对请求的参数做签名时,对于请求参数列表中那些可空的参数,如果选择使用它们,那么这些参数的参数值必须不能为空或空值。 | 避免接口无法正常使用 | |
签名时将字符转化成字节流时指定的字符集与_input_charset保持一致;如果传递了_input_charset参数,这个参数也应该包含在待签名数据中。 | 避免接口无法正常使用 | |
待签名数据应该是参数原始值而不是url encoding之后的值,例如:调用某接口需要对请求参数email进行数字签名,那么待签名数据应该是email=test@msn.com,而不是email=test%40msn.com。 | 避免接口无法正常使用 |
2.4、通知说明
类型 | 细则 | 原因 |
---|---|---|
返回数据处理 | 本接口直接返回的XML信息is_success(T、F)仅代表提交成功、失败,代表请求成功与否。 | 避免理解错误,导致处理错误。 |
必须对返回的数据进行处理,并做好后续的业务逻辑处理。 | 避免重复操作,资金损失等。 |
2.5、验签说明
类型 | 细则 | 原因 |
---|---|---|
验签 | 在对通知的参数做签名时,这些参数必须来源于支付宝通知回来的参数,并且除去列表中的参数sign、sign_type,根据参数名=参数值的格式,按首字符字典顺序(ascii值大小)排序,若遇到相同首字符,则判断第二个字符,以此类推,待签名字符串需要以“参数名1=参数值1&参数名2=参数值2&….&参数名N=参数值N”的规则进行拼接,得到的签名结果与获取到的参数sign值做比较。 | 验证返回的签名 |
三、开发完毕,测试验收。
3.1、测试流程
步骤 | 调试内容 | 备注 |
---|---|---|
第一步:在本机单独对这个接口进行调试。 | 调用接口 返回结果是否正确 调用完成后返回结果是否为等待买家确认收货 如果配置异步通知,则校验通知结果是否正确 | 仅仅把接口配置好,不要放在商户的网站项目中 |
第二步:在服务器上单独对这个接口进行调试 | 同上验证步骤,环境不同 | 本机调试没有问题后,再放入服务器中调试。 |
第三步:接口融合到网站项目中 | 无 | 把调试好的接口与商户网站项目的业务流程进行衔接和融合。 |
第四步:在本机对融合后的网站项目进行调试 |
调用接口
返回结果是否正 调用完成后返回结果是否为等待买家确认收货 如果配置异步通知,则校验通知结果是否正确 |
在本机调试衔接到网站项目后的接口。 |
第五步:在服务器对融合后的网站项目进行调试 | 同上验证步骤 | 本机调试没有问题后,再放入服务器中调试。 |