近期国家陆续出台了个人信息保护和数据安全相关的法律法规,对保障消费者个人信息权益、规范数据处理活动提出了更明确的责任要求。平台将启动订单处理链路的消费者敏感信息保护方案,对涉及消费者个人敏感信息采取加密、去标识化等安全技术措施。
新的方案将会把订单中涉及消费者的敏感信息进行脱敏处理,订单中消费者敏感信息是指消费者订单中的收件人信息。具体脱敏信息字段包含:收件人姓名、收件人手机号、收件人电话(固定号码)、收件人详细地址(不包含省市区)。为了确保商家订单履约正常运行,平台将新增收件人ID字段【简称OAID】。OAID是本次升级新增的核心字段。升级后可以通过OAID进行订单合单,电子面单生成打印,服务短信发送、必要场景的信息解密功能等。
升级使用脱敏的订单数据+OAID方案后,可确保订单履约的全链路作业顺畅不受影响,同时能确保消费者的敏感信息受到保护。
1.开发者(软件服务商、自研商家)从淘宝开放平台API或订单推送服务中获取的订单消费者敏感信息(收件人姓名、收件人手机、收件人电话、地址等)均为脱敏数据,本地不允许存储明文消费者敏感数据。
2.开发者(软件服务商、自研商家)的相关系统页面只能展示平台脱敏后的信息,如需展示明文需通过平台解密方案获得,并且要做好明文数据查看权限的隔离。
3.涉及三方仓的发货履约场景,订单处理类应用(ERP、OMS等)与仓储物流类应用(WMS等)之间的数据通信,必须通过淘宝开放平台定义的奇门相关接口来实现。
4.OAID可用于菜鸟电子面单产品的生成和打印。
5.开发者(软件服务商、自研商家)向消费者发送服务短信,可使用OAID通过淘宝开放平台提供的密文发送服务短信接口来实现。
API名称:taobao.trade.fullinfo.get(获取单笔交易的详细信息)
入参改动:新增参数include_oaid。
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
include_oaid  |  
    Boolean  |  
    true  |  
    appkey未对接oaid加密则忽略该字段。对接oaid加密情况下,(收货人+手机号+座机+收货地址+create)5个字段组合成oaid,原始订单上座机为空也满足条件。传true,代表必须返回oaid,生成不了就报isv.oaid-field-miss错误;默认或者传false,满足生成条件则返回oaid,否则为空  |  
   
出参改动:新增参数oaid、收件人信息脱敏。
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
trade  |  
    Trade[]  |  
    ||
└ oaid  |  
    String  |  
    2w2RYE45iahnF4aiaJ7pHKCJ3Hwnbgnq2PH3AfpQVyWZNHKS9wNgAAOUfCVt9XZMetogNHwc  |  
    入参fields字段必须包含receiver_name、receiver_address、created、receiver_mobile、receiver_phone 5个字段,否则无法生成oaid。  |  
   
└ receiver_name  |  
    String  |  
    张**  |  
    收货人的姓名  |  
   
└ receiver_mobile  |  
    String  |  
    *******5678  |  
    收货人的手机号码  |  
   
└ receiver_phone  |  
    string  |  
    ****5678  |  
    收货人的电话号码  |  
   
└ receiver_address  |  
    string  |  
    文**路**城***号  |  
    收货人的详细地址  |  
   
API名称:taobao.trades.sold.get(根据创建时间-查询已卖出的交易数据)
入参改动:对接oaid加密情况下,出参要获取oaid,在入参fields中就需要包含(receiver_name、receiver_mobile、receiver_phone、receiver_address、created)5字段,否则生成oaid会报错。
出参改动:新增参数oaid、收件人信息脱敏。
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
trades  |  
    Trade[]  |  
    ||
└ oaid  |  
    String  |  
    2w2RYE45iahnF4aiaJ7pHKCJ3Hwnbgnq2PH3AfpQVyWZNHKS9wNgAAOUfCVt9XZMetogNHwc  |  
    入参fields字段必须包含receiver_name、receiver_address、created、receiver_mobile、receiver_phone 5个字段,否则无法生成oaid。  |  
   
└ receiver_name  |  
    String  |  
    张**  |  
    收货人的姓名  |  
   
└ receiver_mobile  |  
    String  |  
    *******5678  |  
    收货人的手机号码  |  
   
└ receiver_phone  |  
    String  |  
    ****5678  |  
    收货人的电话号码  |  
   
└ receiver_address  |  
    String  |  
    文**路**城***号  |  
    收货人的详细地址  |  
   
API名称:taobao.trades.sold.increment.get(根据修改时间-查询已卖出的增量交易数据)
入参改动:对接oaid加密情况下,出参要获取oaid,在入参fields中就需要包含(receiver_name、receiver_mobile、receiver_phone、receiver_address、created)5字段,否则生成oaid会报错。
出参改动:新增参数oaid、收件人信息脱敏。
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
trades  |  
    Trade[]  |  
    ||
└ oaid  |  
    String  |  
    2w2RYE45iahnF4aiaJ7pHKCJ3Hwnbgnq2PH3AfpQVyWZNHKS9wNgAAOUfCVt9XZMetogNHwc  |  
    入参fields字段必须包含receiver_name、receiver_address、created、receiver_mobile、receiver_phone 5个字段,否则无法生成oaid。  |  
   
└ receiver_name  |  
    String  |  
    张**  |  
    收货人的姓名  |  
   
└ receiver_mobile  |  
    String  |  
    *******5678  |  
    收货人的手机号码  |  
   
└ receiver_phone  |  
    String  |  
    ****5678  |  
    收货人的电话号码  |  
   
└ receiver_address  |  
    String  |  
    文**路**城***号  |  
    收货人的详细地址  |  
   
API名称:taobao.trades.sold.incrementv.get(根据入库时间-查询已卖出的增量交易数据)
入参改动:对接oaid加密情况下,出参要获取oaid,在入参fields中就需要包含(receiver_name、receiver_mobile、receiver_phone、receiver_address、created)5字段,否则生成oaid会报错。
出参改动:新增参数oaid、收件人信息脱敏。
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
trades  |  
    Trade[]  |  
    ||
└ oaid  |  
    String  |  
    2w2RYE45iahnF4aiaJ7pHKCJ3Hwnbgnq2PH3AfpQVyWZNHKS9wNgAAOUfCVt9XZMetogNHwc  |  
    入参fields字段必须包含receiver_name、receiver_address、created、receiver_mobile、receiver_phone 5个字段,否则无法生成oaid。  |  
   
└ receiver_name  |  
    String  |  
    张**  |  
    收货人的姓名  |  
   
└ receiver_mobile  |  
    String  |  
    *******5678  |  
    收货人的手机号码  |  
   
└ receiver_phone  |  
    String  |  
    ****5678  |  
    收货人的电话号码  |  
   
└ receiver_address  |  
    String  |  
    文**路**城***号  |  
    收货人的详细地址  |  
   
API名称:taobao.trades.sold.query(根据收件人信息查询交易单号)
有些场景比如退货无头件的处理,需要根据收件人的手机号反向查询对应的订单。可通过此接口获取相应店铺的订单号。
入参
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
query_list  |  
    OrderQuery[]  |  
    查询条件列表,多个条件之间是OR关系,最多支持20个。receiver_name、receiver_mobile、receiver_phone至少有一个值不为空。  |  
   |
└ start_created  |  
    Date  |  
    2000-01-01 00:00:00  |  
    查询三个月内交易创建时间开始。格式:yyyy-MM-dd HH:mm:ss  |  
   
└ end_created  |  
    Date  |  
    2000-01-01 23:59:59  |  
    查询交易创建时间结束。格式:yyyy-MM-dd HH:mm:ss  |  
   
└ receiver_name  |  
    String  |  
    张三  |  
    收件人的姓名  |  
   
└ receiver_mobile  |  
    String  |  
    13012345678  |  
    收件人的手机号  |  
   
└ receiver_phone  |  
    String  |  
    010-12345678  |  
    收件人的电话号码  |  
   
出参
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
tid_list  |  
    String[]  |  
    ["1111","2222"]  |  
    订单ID列表。按照订单创建时间倒序,最多返回最近的100笔订单。  |  
   
菜鸟电子面单相关如下接口已升级,在兼容目前现状的基础上,新增了可选的OAID和tid入参。当前未接入新方案的订单,需传入空的OAID,和明文的收件人信息。接入新方案的订单,需传入不为空的 OAID和交易单号tid,新方案中OAID和tid必填。
API名称:cainiao.waybill.ii.get(电子面单云打印接口)
入参改动:新增参数oaid
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
└ trade_order_info_dtos  |  
    TradeOrderInfoDto[]  |  
    请求面单信息,数量限制为10  |  
   |
└ recipient  |  
    UserInfoDto  |  
    收件人信息  |  
   |
└ oaid  |  
    String  |  
    2w2RYE45iahnF4aiaJ7pHKCJ3Hwnbgnq2PH3AfpQVyWZNHKS9wNgAAOUfCVt9XZMetogNHwc  |  
    收件人ID  |  
   
└ tid  |  
    String  |  
    1527014522198024829  |  
    淘宝交易订单号,针对淘宝订单敏感加密场景使用,非必填,如果填写则必须是淘宝真实的交易订单ID  |  
   
API名称:cainiao.waybill.ii.update(电子面单云打印更新接口)
入参改动:新增参数oaid。
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
└ recipient  |  
    RecipientInfoDto  |  
    收件人信息  |  
   |
└ oaid  |  
    String  |  
    2w2RYE45iahnF4aiaJ7pHKCJ3Hwnbgnq2PH3AfpQVyWZNHKS9wNgAAOUfCVt9XZMetogNHwc  |  
    收件人ID  |  
   
API名称:cainiao.reachable.batchjudge(是否派送可达判定批量查询接口)
入参改动:新增参数oaid。
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
address_and_service_list  |  
    ReachableAddressAndServiceDto[]  |  
    收发地址和服务列表  |  
   |
└ oaid  |  
    String  |  
    2w2RYE45iahnF4aiaJ7pHKCJ3Hwnbgnq2PH3AfpQVyWZNHKS9wNgAAOUfCVt9XZMetogNHwc  |  
    收件人ID  |  
   
API名称:cainiao.pickup.business.callguoguo(菜鸟商家寄件下单并呼叫裹裹运力)
入参改动:新增参数encrypted_customer_info。
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
guo_guo_package_info  |  
    GuoGuoPackageInfo[]  |  
    包裹信息,最多传30个  |  
   |
└ encrypted_customer_info  |  
    EncryptedCustomerInfo  |  
    淘宝加密字段(如果无法取到明文的收件人信息,可以本字段代替,否则勿使用本字段。若本字段下属2个字段都不为空,则取解密后的地址为收件人地址。否则此字段无效,依然取上面的full_address_detail等信息为收件人信息。若下属2个字段都不为空但有误,会下单失败)  |  
   |
└ oaid  |  
    String  |  
    abcdefghij  |  
    收件人ID (Open Addressee ID),长度128位字符之内  |  
   
└ taobao_order_id  |  
    String  |  
    123456  |  
    淘宝订单ID  |  
   
API名称:cainiao.pickup.business.preorderview.get(菜鸟商家寄件下单前获取预览信息)
入参改动:新增参数encrypted_customer_info
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
package_info_list  |  
    GuoGuoPackageInfo[]  |  
    /  |  
    批量下单时包裹信息列表,最多传30个  |  
   
└ encrypted_customer_info  |  
    EncryptedCustomerInfo  |  
    /  |  
    淘宝加密字段(如果无法取到明文的收件人信息,可以本字段代替,否则勿使用本字段。若本字段下属2个字段都不为空,则取解密后的地址为收件人地址。否则此字段无效,依然取上面的full_address_detail等信息为收件人信息。若下属2个字段都不为空但有误,会下单失败)  |  
   
└ oaid  |  
    String  |  
    abcdefghij  |  
    收件人ID (Open Addressee ID),长度128位字符之内  |  
   
└ taobao_order_id  |  
    String  |  
    123456  |  
    淘宝订单ID  |  
   
订单相关的奇门API,已新增OAID的出入参,订单接口中Create、batchcreate接口用于衔接订单处理类应用(ERP、OMS等)与仓储物流类应用(WMS等)之间的发货订单数据传输。
如果仓储物流类应用(WMS等)接到的密文数据因为业务需要,需要对某笔订单进行解密时,需要调用receiverinfo.query接口反向调用订单处理类应用(ERP、OMS等)的解密接口完成明文获取。receiverinfo.query接口需要订单处理类应用(ERP、OMS等)对接来实现解密功能。
每个接口的具体入参内容,请点击如下接口链接查看
奇门API  |  
    API名称  |  
   
发货单创建  |  
   |
发货单创建批量接口  |  
   |
根据收件人信息查询交易单号接口  |  
   |
OAID 收件人信息解密接口  |  
   
API名称:taobao.top.oaid.decrypt
通过新增TOP接口taobao.top.oaid.decrypt实现根据OAID来做消费者敏感信息解密,获取OAID对应的收件人明文信息。
入参
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
query_list  |  
    ReceiverQuery[]  |  
    解密请求列表,最多支持20个。  |  
   |
└ oaid  |  
    String  |  
    2w2RYE45iahnF4aiaJ7pHKCJ3Hwnbgnq2PH3AfpQVyWZNHKS9wNgAAOUfCVt9XZMetogNHwc  |  
    收件人ID (Open Addressee ID)  |  
   
└ tid  |  
    String  |  
    1111  |  
    交易编号  |  
   
出参
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
receiver_list  |  
    Receiver[]  |  
    ||
└ name  |  
    String  |  
    张三  |  
    收件人的姓名  |  
   
└ mobile  |  
    String  |  
    13012345678  |  
    收件人的手机号  |  
   
└ phone  |  
    String  |  
    010-12345678  |  
    收件人的电话号码  |  
   
└ address_detail  |  
    String  |  
    淘宝城911号  |  
    收件人的详细地址  |  
   
└ town  |  
    String  |  
    三墎镇  |  
    收货人街道地址  |  
   
└ district  |  
    String  |  
    西湖区  |  
    收货人的所在地区  |  
   
└ city  |  
    String  |  
    杭州市  |  
    收货人的所在城市  |  
   
└ state  |  
    String  |  
    浙江省  |  
    收货人的所在省份  |  
   
└ country  |  
    String  |  
    中国  |  
    收货人国籍  |  
   
└ oaid  |  
    String  |  
    2w2RYE45iahnF4aiaJ7pHKCJ3Hwnbgnq2PH3AfpQVyWZNHKS9wNgAAOUfCVt9XZMetogNHwc  |  
    收件人ID (Open Addressee ID),字符长度128位以内。  |  
   
└ tid  |  
    String  |  
    123456  |  
    交易编号  |  
   
└ matched  |  
    Boolean  |  
    true  |  
    oaid是否和tid当前的oaid匹配。true:匹配,false:不匹配。当不匹配时,建议通过taobao.trade.fullinfo.get获取最新的oaid。  |  
   
API名称:taobao.top.oaid.merge(合单校验)
同一个消费者在同一店铺内的待发货订单中,OAID相同的可以直接合单,不同的可调用订单合单接口:taobao.top.oaid.merge进行判断。
入参
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
merge_list  |  
    OrderMerge[]  |  
    合单请求列表,最多支持100个。  |  
   |
└ oaid  |  
    String  |  
    2w2RYE45iahnF4aiaJ7pHKCJ3Hwnbgnq2PH3AfpQVyWZNHKS9wNgAAOUfCVt9XZMetogNHwc  |  
    收件人ID (Open Addressee ID)  |  
   
└ tid  |  
    String  |  
    1111  |  
    交易编号  |  
   
出参
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
tid_list  |  
    String[]  |  
    ["1111,2222","3333"]  |  
    合单结果。可合单的订单ID列表用逗号分隔的字符串表示。比如,"1111,2222"表示订单1111和订单2222可合并发货。  |  
   
API名称:taobao.jst.sms.oaid.message.send(OAID发送短信 )
该接口仅可用来发送订单履约相关的短信,不可用来发送营销短信的。消费者订单上的手机号仅是用来购买商品的,在没有得到消费者同意的情况下,不得用于和该笔订单履约无关的场景。
入参
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
param_send_message_by_o_a_i_d_request  |  
    SendMessageByOaidRequest  |  
    ||
└ extend_name  |  
    String  |  
    12345  |  
    拓展Name  |  
   
└ order_id  |  
    Number  |  
    1590159531380428537  |  
    订单号  |  
   
└ extend_code  |  
    String  |  
    12345  |  
    拓展Code  |  
   
└ sms_free_sign_name  |  
    String  |  
    聚石塔测试签名  |  
    短信签名  |  
   
└ template_code  |  
    String  |  
    SMS_12345  |  
    短信模板  |  
   
└ params  |  
    Json  |  
    {"content":"您好! "}  |  
    短信占位符,替换短信模板里的占位符  |  
   
└ extend  |  
    String  |  
    123  |  
    拓展信息  |  
   
└ oaid  |  
    String  |  
    3mwdUE03cfGGuH4A4DrWWjcL8lxkl3bH29SM1RHqDNo5RgXYTdCQj1ZMN8wbv7qnLeiX6Dr  |  
    收件人ID(Open Addressee ID),长度128字符之内。  |  
   
出参
名称  |  
    参数类型  |  
    示例值  |  
    描述  |  
   
module  |  
    String  |  
    1234567890^0  |  
    短信拓展码  |  
   
req_id  |  
    String  |  
    1235  |  
    top请求id  |  
   
场景编码  |  
    场景名称  |  
    返回的隐私字段  |  
   
1001  |  
    顺丰电子面单发货  |  
    消费者手机号,姓名,详细地址  |  
   
1002  |  
    4通一达电子面单发货  |  
    消费者手机号,姓名,详细地址  |  
   
1003  |  
    EMS电子面单发货  |  
    消费者手机号,姓名,详细地址  |  
   
1004  |  
    其他电子面单发货  |  
    消费者手机号,姓名,详细地址  |  
   
1005  |  
    线下门店发货  |  
    消费者手机号,姓名,详细地址  |  
   
1006  |  
    手工单发货  |  
    消费者手机号,姓名,详细地址  |  
   
1007  |  
    代发货  |  
    消费者手机号,姓名,详细地址  |  
   
1008  |  
    改地址  |  
    详细地址  |  
   
1009  |  
    查看收件人姓名  |  
    收件人姓名  |  
   
2001  |  
    客户售后服务  |  
    消费者手机号  |  
   
2002  |  
    客户关怀  |  
    消费者手机号  |  
   
3001  |  
    奇门  |  
    消费者手机号,姓名,详细地址  |  
   
若taobao.qimen.receiverinfo.query中scene参数为空时(调用方系统未改造完毕),下游系统请设置scene = 3001。
场景编码  |  
    场景名称  |  
    返回结果  |  
   
1001  |  
    客服咨询  |  
    返回最近7天的订单号  |  
   
1002  |  
    售后服务  |  
    返回最近3个月的、最多100个订单号。  |  
   
如有新增场景需要平台给出标准码定义,请开发者通过提交工单【开放平台-订单隐私保护升级】进行反馈。
由于每个应用的功能范围存在差异,此章节仅提供整体性介绍和常见或关键改造点的改造建议,不同的功能改造点涉及到使用不同的接口,还需要开发者(软件服务商、自研商家)根据自身产品情况做具体的实施和落地。
整体数据推送链路
  
平台提供订单推送服务、API等方式查询订单数据,升级后查询到的消费者敏感信息以脱敏+OAID的形式返回。
查询订单详情数据可通过调用taobao.trade.fullinfo.get接口实现。
查询待发货订单数据可通过调用taobao.trades.sold.get接口实现。
通过平台订单推送服务与API接口获取到的数据都是OAID+脱敏的形式,并按照此样式展示在相关页面,不做不必要的解密,不做明文展示。
通过taobao.trades.sold.get接口的调整使用,完成应用订单列表页或待发货订单列表页,信息的脱敏展示。
通过对taobao.trades.sold.query接口的调整使用,完成针对退货无头件场景查询时的模糊搜索功能的数据脱敏展示,实现各端、页面、列表按姓名搜索订单数据脱敏展示,实现各端、页面、列表按手机号搜索订单数据的脱敏展示,目前该接口只用于退货无头件场景的使用,不可用于非此场景的模糊查询。
通过对taobao.trade.fullinfo.get接口的调整使用,完成各端、页面、列表查看订单详细信息时对收件人信息展示平台脱敏的数据。
通过订单推送、taobao.trade.fullinfo.get、taobao.trades.sold.get、taobao.trades.sold.increment.get获取OAID+脱敏订单信息,然后调用菜鸟电子面单相关接口:cainiao.waybill.ii.get获取电子面单号,最后调用淘宝物流发货接口:alibaba.ascp.logistics.offline.send、taobao.logistics.offline.send进行订单发货。
同一个消费者在同一店铺内的待发货订单中,OAID相同的可以直接合单,不同的可调用订单合单接口:taobao.top.oaid.merge进行判断。
按手机号模糊搜索订单数据可通过调用taobao.trades.sold.query接口实现。
按收件姓名模糊搜索订单数据可通过调用taobao.trades.sold.query接口实现。
主要实现订单处理类应用(ERP、OMS等)-》奇门-》仓储物流类应用(WMS等)三方数据的互通传递,需要保证数据在脱敏+OAID的形式下完成
订单处理类应用(ERP、OMS等)需要支持仓储物流类应用(WMS等)对特殊订单通过奇门解密接口:taobao.qimen.receiverinfo.query的反向解密需求。
电子面单的获取接口兼容脱敏数据的处理,当前未接入新方案的订单,需传入空的OAID,和明文的收件人信息。接入新方案的订单,需传入不为空的OAID和交易单号tid。新方案中OAID和tid必填。
通过taobao.jst.sms.oaid.message.send接口实现OAID短信通知功能,该接口仅可用来发送订单履约相关的短信,不得用于和该笔订单履约无关的场景。
如果要确认消息是否投递成功,要通过监听消息来确认。目前用到短信能力的开发者(软件服务商、自研商家)应该都可以通过module回执码,匹配监听的消息对应查询这笔的发送状态。如需了解整体的短息服务对接可参考:通信服务使用介绍。
敏感数据查看通过解密接口:taobao.top.oaid.decrypt实现,功能上涉及到的几个比较明确的场景是:订单列表页可对指定的某笔订单做解密、订单详情页可对某笔指定的订单详情数据的解密、打印普通快递单,可实现对订单进行解密。如上解密功能实现过程中注意数据的隔离保护,解密后的明文只对发起解密的账户可见,其它账户登录后对同一笔订单数据看到的必须还是脱敏信息,做到数据的安全隔离不泄露。