当前位置: API文档

purchase_return_push.php(创建采购退货单)

¥标准

1.接口说明

1.1 接口描述:推送采购退货单据给ERP
1.2 适用版本:客户端 V2.4.0.5及以上版本

2.调用场景

2.1 SCM、SRM等采购供应管理系统对接

3.请求参数说明

   3.1 请求地址

环境HTTP地址
测试环境http://sandbox.wangdian.cn/openapi2/purchase_return_push.php
正式环境http://api.wangdian.cn/openapi2/purchase_return_push.php

   3.2 公共请求参数

名称字段类型长度
必须描述
卖家账号sidString
购买ERP时由旺店通分配给ERP购买方,请从ERP购买方获取。
接口账号appkeyString
本开放平台“自助对接”功能模块内自助申请,申请流程单击这里
时间戳timestampint
北京时间1970-01-01 08:00:00起至现在的总秒数,10位int值,旺店通企业版API服务端允许请求最大时间误差为5min,date.timezone = Asia/Shanghai。
签名signString
API输入参数签名结果,签名算法介绍单击这里

   3.3 业务请求参数

名称字段类型长度必须描述
采购退货单列表节点return_infodata
请求参数的1级数据节点,包含采购退货单所有属性信息的数据节点,节点下数据字段详见下述“return_info”列表

   return_info

名称字段类型长度必须描述
供应商编号provider_novarchar20供应商编号
外部单号outer_novarchar40外部单号
出库仓库编号warehouse_novarchar40代表仓库所有属性的唯一编码,用于仓库区分,ERP内支持自定义(ERP仓库界面设置)
关联采购员编号purchaser_novarchar40关联采购员编号
货运方式logistics_codevarchar20货运方式,物流公司编号
省份receiver_provincevarchar50省份
城市receiver_cityvarchar50城市
地区receiver_districtvarchar50地区
联系人contactvarchar40联系人
联系电话telnovarchar32联系电话
详细地址addressvarchar255详细地址
邮资post_feedecimal19,4邮资
备注remarkvarchar255备注
自定义属性1prop1varchar255自定义属性1
自定义属性2prop2varchar255自定义属性2
明细列表节点detail_listdata[]
请求参数的2级数据节点,包含采购退货单所有货品明细属性信息的数据节点,节点下数据字段详见下述“detail_list”列表

  detail_list

名称字段类型长度必须描述
商家编码spec_novarchar40代表所单品(sku)所有属性的唯一编码,用于获取系统单品的数据,SKU概念介绍,单击这里
退货数量numdecimal(19,4)退货数量
单价pricedecimal(19,4)单价
折扣discountdecima(19,4)折扣
备注detail_remarkvarchar255备注

4.响应参数

   4.1 公共响应参数

名称字段类型长度必须描述
错误码codeint40
状态码:0表示成功,其他表示失败
采购退货单号messagevarchar255
生成的系统采购退货单号,是ERP内采购退货单的唯一单号

   4.2 业务响应参数


5.请求示例

PHP
<?php
    require_once("../WdtClient.php");
    $c = new WdtClient;
    $c->sid = '';
    $c->appkey = '';
    $c->appsecret = '';
    $c->gatewayUrl = 'http://sandbox.wangdian.cn/openapi2/purchase_return_push.php';
    
    $return_info = array (
        "receiver_city" => "",
        "logistics_code" => "",
        "warehouse_no" => "api_test",
        "contact" => "",
        "post_fee" => "0",
        "telno" => "",
        "receiver_province" => "",
        "detail_list" => array (
            array (
                "spec_no" => "test-sd-ptpt-00001",
                "detail_remark" => "",
                "num" => "6.0000",
                "price" => "149.3097",
                "discount" => "0"
            )
        ),
        "receiver_district" => "",
        "address" => "",
        "remark" => "",
        "outer_no" => "1525",
        "purchaser_no" => "",
        "provider_no" => "88888805"
    );
    
    $c->putApiParam('return_info', json_encode($return_info, JSON_UNESCAPED_UNICODE));
    $json = $c->wdtOpenApi();
    var_dump($json);
?>
JAVA
package com.wangdian.api.purchase;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.wangdian.api.WdtClient;

public class PurchaseReturnPush {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        WdtClient client = new WdtClient("", "", "", "");
        
        Map<String, Object> return_info = new HashMap<String, Object>();
        List<Map<String, Object>> detail_list = new ArrayList<Map<String,Object>>();
        
        Map<String, Object> detail_1 = new HashMap<String, Object>();
        detail_1.put("spec_no", "qqq");
        detail_1.put("num", 6);
        detail_1.put("price", 123);
        detail_1.put("discount", 0);
        
        detail_list.add(detail_1);
        
        return_info.put("provider_no", "ghs123");
        return_info.put("outer_no", "ghs23214");
        return_info.put("warehouse_no", "ghs2test");
        return_info.put("detail_list", detail_list);
        
        String return_info_json = JSON.toJSONString(return_info);
        
        Map<String, String> params = new HashMap<String, String>();
        params.put("return_info", return_info_json);
        try {
            String response = client.execute("purchase_return_push.php", params);
            System.out.println(response);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

}
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WdtSdk;

namespace PurchaseReturnPush
{
    class PurchaseReturnPush
    {
        static void Main(string[] args)
        {
            WdtClient client = new WdtClient();
            client.sid = "";
            client.appkey = "";
            client.appsecret = "";
            client.gatewayUrl = "http://sandbox.wangdian.cn/openapi2/purchase_return_push.php";

            var return_info = new
            {
                purchase_no = "34567876543234",
                provider_no = "wl00001",
                outer_no = "345678987654",
                warehouse_no = "api_test",
                detail_list = new[]
                {
                    new
                    {
                        spec_no ="1001017308AYS2S",
                        num = "1"
                    },
                    new
                    {
                        spec_no ="sku002",
                        num = "1"
                    }
                }
                
            };

            string json = return_info.ToJsonString();
            client.putParams("return_info", json);

            string result = client.wdtOpenapi();
            Console.WriteLine(result);
            Console.ReadKey();
        }
    }
}

6.响应示例

   6.1 正常响应示例 

JSON
{
    "code": 0,
    "message": "CR201905180002"
}

   6.2 异常响应示例

JSON
{
    "code": 2010,
    "message": "供应商编号在系统中不存在【解决办法:请到[设置]->[基本设置]->[供应商]界面核实,接口请求的供应商编号是否正确】 "
}



常用工具