플랫폼 기술 - 메시징 서비스 이용 소개


메시지 서비스는 애플리케이션 API 호출의 효율성을 향상하기 위해 개방형 플랫폼에서 출시된 활성 푸시 서비스(From Taobao)입니다. 푸시 콘텐츠에는 이 푸시 서비스를 기반으로 하는 내용이 포함됩니다. , 애플리케이션은 더 이상 API를 지속적으로 폴링할 필요 없이 Taobao 데이터를 얻습니다. Taobao에서 푸시한 메시지를 수신할 때 API를 호출하기만 하면 API 호출의 효율성이 크게 향상되고 API 사용 비용이 절감됩니다. 동시에 메시지 반환 서비스(To Taobao)도 제공합니다. 애플리케이션은 Taobao에 정보를 반환하고 제품 데이터 소스 서비스 등을 제공할 수 있습니다.

From Taobao: Taobao는 거래, 상품, 환불 등에 관한 Taobao(Tmall 포함) 공식 뉴스를 푸시합니다.

To Taobao: Taobao에 메시지를 반환합니다.

그럼 메시지 서비스는 어떻게 이용하나요? From Taobao 및 To Taobao 메시징 서비스 사용에 대한 자세한 지침은 다음을 참조하세요.

Taobao 메시지 서비스에서

image

앱 구독 메시지

를 사용하세요. ISV 콘솔에 들어가 "애플리케이션 관리->메시지 서비스->구독 메시지" 페이지에서 필요한 메시지를 선택하세요. 구독하려면 해당 메시지 뒤에 있는 "구독"을 클릭하세요. 메시지를 성공적으로 구독하려면 "내 구독"에서 성공적으로 구독된 메시지를 볼 수 있습니다. 메시지 구독을 취소하려면 직접 "구독 취소"를 클릭하세요. 각 메시지에서 반환된 자세한 필드 정보를 보려면 메시지 이름을 클릭하세요.

image

참고: 메시지에 권한이 없으면 애플리케이션이 관련 API 호출 권한을 열지 않았음을 의미합니다. 해당 권한 패키지를 신청하려면 "권한 신청"을 클릭하세요. 또한, 샌드박스에서 메시지 서비스를 활성화해야 하는 경우 이 글의 [샌드박스 메시지 서비스 활성화] 장을 참조하여

image 사용자에 대한 메시지를 활성화하고

taobao.tmc를 호출할 수 있습니다. .user.permit 사용자(예: Taobao 또는 Tmall 판매자) 인터페이스에서 사용자에 대해 일부 메시지 유형만 활성화하도록 선택하거나 모두 활성화할 수 있습니다. 자세한 내용은 API 매개변수 설명을 참조하세요.

비고:

  • 사용자를 위한 메시지를 활성화하기 위한 전제 조건은 사용자가 애플리케이션을 승인해야 한다는 것입니다. 그렇지 않은 경우 사용자 승인 받기 지침을 참조하세요.
  • 사용자의 메시지 서비스를 취소하려면 taobao.tmc.user.cancel 인터페이스를 호출하세요.
  • taobao.tmc.user.get 인터페이스를 통해 사용자의 활성화된 메시지를 얻을 수 있습니다. 사용자 인증 메시지의 성공 여부를 확인하려면 입력 매개변수가 is_valid, topic으로 수정되어야 합니다.
  • 메시지 서비스 API 문서: 여기를 클릭하세요. 보기

메시지 수신을 구현하는 코드

공식 환경 서비스 주소: ws://mc.api.taobao.com/
샌드박스 환경 서비스 주소: ws://mc.api.tbsandbox.com/
메시지 수신, 구현 방법은 다음과 같습니다. SDK를 통해 메시지 수신, API를 통해 메시지 수신 SDK를 사용하여 메시지를 수신하는 것이 좋습니다.

SDK를 통해 메시지 받기

현재 JAVA 및 .NET 언어를 지원하며, 그 외 언어의 경우 API를 사용하여 메시지를 받는 것을 권장합니다. SDK를 통해 메시지를 수신할 때는 비즈니스 처리에만 집중하면 됩니다. 메시지 재전송, 확인, 긴 연결 재연결 등은 SDK가 자동으로 처리합니다.

JAVA 인터페이스 사용 지침

public interface MessageHandler {
 
    /**
     * 消息通道客户端收到消息后,会回调该方法处理具体的业务,处理结果可以通过以下两种方式来表述:
     * <ul>
     * <li>抛出异常或设置status.fail()表明消息处理失败,需要消息通道服务端重发
     * <li>不抛出异常,也没有设置status信息,则表明消息处理成功,消息通道服务端不会再投递此消息
     *
     * @param message 消息内容
     * @param status 处理结果,如果调用status.fail(),消息通道将会择机重发消息;否则,消息通道认为消息处理成功
     * @throws Exception 消息处理失败,消息通道将会择机重发消息
     */
    public void onMessage(Message message, MessageStatus status) throws Exception;
 
}

JAVA 사용 코드 예제

TmcClient client = new TmcClient("app_key", "app_secret", "default"); // 关于default参考消息分组说明
client.setMessageHandler(new MessageHandler() {
    public void onMessage(Message message, MessageStatus status) {
        try {
            System.out.println(message.getContent());
            System.out.println(message.getTopic());
        } catch (Exception e) {
            e.printStackTrace();
            status.fail(); // 消息处理失败回滚,服务端需要重发
          // 重试注意:不是所有的异常都需要系统重试。
          // 对于字段不全、主键冲突问题,导致写DB异常,不可重试,否则消息会一直重发
          // 对于,由于网络问题,权限问题导致的失败,可重试。
          // 重试时间 5分钟不等,不要滥用,否则会引起雪崩
        }
    }
});
client.connect("ws://mc.api.taobao.com"); // 消息环境地址:ws://mc.api.tbsandbox.com/
참고: Java 기본 메서드를 사용하여 Eclipse에서 위 코드 테스트를 실행할 때 client.connect() 뒤에 Thread.sleep을 추가하세요. 스레드는 메시지의 실시간 수신을 관찰하기 위해 일정 시간 동안 기다립니다. 그렇지 않으면 기본 스레드가 종료된 후 TMC 긴 연결도 끊어집니다. 위 코드를 웹 서버에서 실행하는 경우 client.connect() 뒤에 Thread.sleep 코드를 추가할 필요가 없으며 웹의 메인 스레드가 외부에 while(true) 루프를 래핑할 필요도 없습니다. 서버만 닫으면 종료되지 않으며 TMC의 긴 연결이 항상 유지됩니다.

C# 사용 샘플 코드

TmcClient client = new TmcClient("appkey", "appsecret", "default"); // 关于default参考消息分组说明
client.OnMessage += (s, e) =>
{
    try
    {
        Console.WriteLine(e.Message.Topic);
        Console.WriteLine(e.Message.Content);
        // 默认不抛出异常则认为消息处理成功
    }
    catch (Exception exp)
    {
        Console.WriteLine(exp.StackTrace);
        e.Fail(); // 消息处理失败回滚,服务端需要重发
        // 重试注意:不是所有的异常都需要系统重试。 
        //对于字段不全、主键冲突问题,导致写DB异常,不可重试,否则消息会一直重发
        // 对于,由于网络问题,权限问题导致的失败,可重试。
        // 重试时间 5分钟不等,不要滥用,否则会引起雪崩
    }
};
client.Connect("ws://mc.api.taobao.com/"); // 消息环境地址:ws://mc.api.tbsandbox.com/
참고: C# Main 메서드를 사용하여 VS 콘솔 프로젝트에서 위 코드 테스트를 실행할 때 client.Connect 뒤에 Console.Read() 또는 Thread.Sleep을 추가하여 메인 스레드가 일시적으로 종료되지 않도록 하여 관찰할 수 있도록 하세요. 실시간 메시지 수신 상태. 그렇지 않으면 메인 스레드가 종료된 후 TMC 긴 연결도 끊어집니다. IIS 서버 또는 C# 응용 프로그램에서 위 코드를 실행하는 경우 client.Connect 뒤에 대기 코드를 추가할 필요가 없으며 IIS 서버 또는 C# 응용 프로그램 외부에서 while(true) 루프를 래핑할 필요도 없습니다. C# 응용 프로그램이 종료되면 TMC의 긴 연결이 유지됩니다.

API를 통해 메시지 수신

메시지 수신 API를 제공하는 목적은 PHP, Python 등 멀티스레딩 및 긴 연결 처리에 불편한 언어를 위한 것입니다. 당분간은 다음 두 가지 방법을 사용할 수 있습니다. API를 함께 사용하여 메시지 수신 및 확인 목적을 달성할 수도 있습니다. 가능하면 SDK 방식을 사용하는 것이 좋습니다. API를 사용해야 하는 경우 동시성이 없거나 너무 많은 경우 taobao.tmc.messages.consume 인터페이스를 호출하는 것이 좋습니다. API 사용의 시간 성능은 그리 높지 않습니다. 실시간 요구 사항이 높더라도 SDK를 사용하는 것이 좋습니다.

기본 단계:

  • 먼저 메시지 소비: API 이름: taobao.tmc.messages.consume메시지가 소비된 후 포인터가 자동으로 뒤로 이동하고 다음 호출에서는 소비되지 않은 메시지를 자동으로 가져옵니다. 소비 확인 메시지를 다시 검색할 수 없습니다.
  • 그런 다음 메시지를 확인하세요. API 이름: taobao.tmc.messages.confirm 메시지를 받은 후 확인되지 않으면 메시지 서비스에서 메시지를 다시 보낼 시간을 선택합니다. 재전송 횟수는 메시지에 따라 결정됩니다. 3일 이내에 메시지가 확인되지 않으면 삭제됩니다.

JAVA 샘플 코드

TaobaoClient client = new DefaultTaobaoClient("http://gw.api.taobao.com/router/rest", "app_key", "app_secret", "json");
do {
    long quantity = 100L;
    TmcMessagesConsumeResponse rsp = null;
    do {
        TmcMessagesConsumeRequest req = new TmcMessagesConsumeRequest();
        req.setQuantity(quantity);
        req.setGroupName("default");
        rsp = client.execute(req);
        if (rsp.isSuccess() && rsp.getMessages() != null) {
            for (TmcMessage msg : rsp.getMessages()) {
                // handle message
                System.out.println(msg.getContent());
                System.out.println(msg.getTopic());
                // confirm message
                TmcMessagesConfirmRequest cReq = new TmcMessagesConfirmRequest();
                cReq.setGroupName("default");
                cReq.setsMessageIds(String.valueOf(msg.getId()));
                TmcMessagesConfirmResponse cRsp = client.execute(cReq);
                System.out.println(cRsp.getBody());
            }
        }
        System.out.println(rsp.getBody());
    } while (rsp != null && rsp.isSuccess() && rsp.getMessages() != null && rsp.getMessages().size() == quantity);
    Thread.sleep(1000L);
} while (true);

C# 샘플 코드

ITopClient client = new DefaultTopClient("http://gw.api.taobao.com/router/rest", "app_key", "app_secret", "json");
do
{
    long quantity = 100L;
    TmcMessagesConsumeResponse rsp = null;
    do
    {
        TmcMessagesConsumeRequest req = new TmcMessagesConsumeRequest();
        req.GroupName = "default";
        req.Quantity = quantity;
        rsp = client.Execute(req);
        if (!rsp.IsError && rsp.Messages != null)
        {
            foreach (TmcMessage msg in Messages)
            {
                // handle message  
                Console.WriteLine(msg.Topic);
                Console.WriteLine(msg.Content);
                // confirm message  
                TmcMessagesConfirmRequest cReq = new TmcMessagesConfirmRequest();
                cReq.GroupName = "default";
                cReq.SMessageIds = msg.Id.ToString();
                TmcMessagesConfirmResponse cRsp = client.Execute(cReq);
                Console.WriteLine(cRsp.Body);
            }
        }
        Console.WriteLine(rsp.Body);
    } while (rsp != null && !rsp.IsError && rsp.Messages != null && rsp.Messages.Count == quantity);
    Thread.Sleep(new TimeSpan(0, 0, 1));
} while (true);
참고: 네트워크가 양호하고 매번 얻은 메시지가 비어 있는 경우 API를 통해 메시지를 가져오는 평균 RT는 약 10밀리초에 도달할 수 있습니다. , 메시지를 가져오기 위해 다음 루프를 실행하기 전에 최소 1초 동안 일시 중지해야 합니다. 그렇지 않으면 불필요한 요청이 많이 생성되어 서버 리소스와 애플리케이션 자체 API 트래픽 패킷이 낭비됩니다.

메시지 그룹화 사용 소개

사용자 수가 많을 경우 여러 대의 시스템이 클러스터를 형성하여 메시지를 받거나, 판매자가 독립적으로 메시지를 받기 위해 격리되어야 합니다. SDK와 API 모두 다중 연결을 통해 메시지를 수신할 수 있습니다.

메시징 서비스는 두 가지 방법으로 다중 연결을 지원합니다. Ⅰ. 여러 사용자 그룹을 만들고 각 사용자 그룹이 연결을 설정합니다. Ⅱ. 같은 그룹에 여러 연결을 설정하세요

  • 그룹 만들기: taobao.tmc.group.add 인터페이스를 호출하여 맞춤 그룹을 만듭니다. 참고: 메시징 서비스는 애플리케이션에 대한 기본 그룹을 생성합니다. 지정된 그룹 [group]에 할당되지 않은 사용자는 SDK 또는 API를 통해 메시지를 소비할 때 그룹이 지정되지 않은 경우 기본 그룹에 속합니다. 그룹 연결이 사용됩니다.
  • 그룹 삭제: taobao.tmc.group.delete 인터페이스를 호출하여 지정된 그룹 또는 그룹 아래의 사용자를 삭제합니다. 참고: 각 애플리케이션은 최대 50개의 그룹을 생성할 수 있으며 각 그룹의 사용자 수에는 제한이 없습니다.

타오바오 메시지 서비스를 이용하려면

LB1n7l2LpXXXXXkXFXXXXXXXXXX.png

구독 데이터 반환 메시지

애플리케이션 관리 배경에서 "메시지 구독"을 클릭하세요. 메시지에 권한이 없으면 "권한 적용"을 클릭하여 애플리케이션에 들어가세요. 해당 부가 가치 패키지

LB1l58TLpXXXXXrXVXXXXXXXXXX.png

코드는 푸시 메시지를 구현합니다

메시지 반환에는 두 가지 방법이 있습니다: API를 통해 메시지 게시, SDK를 통해 메시지 게시 API를 사용하는 것이 좋습니다. 메시지를 게시합니다.

API를 통해 메시지 게시

구체적인 지침은 API 문서를 참조하세요. taobao.tmc.message.produce

SDK를 통해 메시지 게시(권장하지 않음)

현재 JAVA 및 .NET 지원 다른 언어의 경우 API를 사용하여 메시지를 게시하는 것이 좋습니다.

JAVA 코드 예제

TmcClient client = new TmcClient("app_key", "app_secret", "default");
client.connect("ws://mc.api.taobao.com/");
for (int i = 0; i < 10; i++) {
    client.send("helloworld-topic", "{helloworld-content}", "session_key");
}


C# 코드 예제

TmcClient client = new TmcClient("app_key", "app_secret", "default");
client.Connect("ws://mc.api.taobao.com/");
for (int i = 0; i < 10; i++)
{
    client.Send("helloworld-topic", "{helloworld-content}", "session_key");
}

일반적인 메시지 유형 설명

플랫폼은 구조화된 메시지 설명 문서를 제공했습니다. 여기를 클릭하여 메시지 문서를 입력하세요. 스테이션의 메시징 서비스에서 구독 및 구독 취소 컨트롤을 입력하세요.

샌드박스 메시징 서비스가 활성화되었습니다

1. http://mini.tbsandbox.com/를 방문하여 샌드박스에 로그인하세요. [샌드박스 계정을 직접 등록하거나 http://를 참조하세요. www.tbsandbox.com /doc/"테스트 계정 생성" 소개】

두 번째, 샌드박스 테스트 도구 선택 - 메시지 채널 관리

LB1c9abLpXXXXaaXXXXXXXXXXXX.png

샌드박스 apppkey를 입력하여 메시지를 구독하세요. [샌드박스 테스트는 테스트 항목을 사용합니다] taobao_item_ItemStockChanged 구독을 위한 예시로 인벤토리 수정]

LB1t1V5LpXXXXbvXpXXXXXXXXXX.png

3. SessionKey를 얻기 위한 샌드박스의 빠른 작업. Sandbox AppKey를 입력하고 검색을 클릭하여 SessionKey를 얻으세요. 아래 그림과 같이 sandbox_c_1 인증 1021719331 애플리케이션은 해당 데이터를 얻을 수 있습니다. 인증 코드는 SessionKey에 해당하는 값입니다. 그런 다음 taobao.tmc.user.permit 인터페이스를 호출하여 1021719331에 메시지 수신 권한을 부여합니다.

LB1WMRNLpXXXXcXXVXXXXXXXXXX.png

4. 코드를 실행합니다(ws://mc.api.tbsandbox.com/에 요청, sandbox appkey, secret, sandbox 계정 사용, 코드 부분은 위 공식 환경 참조). 시작되면 샌드박스 판매자 센터 수정 인벤토리 테스트 검증으로 이동할 수 있습니다.

메시지 서비스 FAQ

그룹화란 무엇이며 그룹화가 필요한가요?
메시지 그룹화는 그룹에 속한 사용자의 메시지를 격리하는 방법입니다. 동일한 그룹은 다중 연결을 지원하며, 동일한 그룹의 메시지는 그룹 내 특정 연결로 무작위로 전송됩니다. 유료 사용자와 무료 사용자에게 우선 순위를 두는 등 사용자 유형에 따라 메시지를 다르게 처리하려는 경우 메시지 그룹화를 통해 다른 사용자로부터 메시지를 받을 수 있습니다. 각 애플리케이션은 최대 50개의 그룹을 생성할 수 있으며 각 그룹의 사용자 수에는 제한이 없습니다.

다중 연결 메시지 수신이란 무엇이며 다중 연결 설정 방법
다중 연결 메시지 수신이란 동일한 그룹에 속한 ISV 서버가 TOP 메시지 서버와 다중 연결을 설정하여 메시지를 수신하는 것을 의미합니다. 멀티링크란 동일한 그룹에 대해 메시지가 전달될 때 그룹 내 여러 연결 중에서 무작위로 하나의 연결을 선택하여 메시지를 전달하는 것을 의미합니다. 멀티링크는 메시지를 무작위로 전달하는 기능을 가지고 있으며, 동일한 그룹 내 여러 연결을 이용하여 클러스터링 및 로드 기능을 구현할 수 있습니다.

여러 링크를 설정하려면 동일한 코드로 TmcClient 인스턴스를 다시 시작하기만 하면 됩니다. 동일한 그룹의 여러 링크는 동일한 ISV 서버 또는 다른 ISV 서버에 구축될 수 있습니다.

다중 연결을 사용해야 하는 경우
메시지 서비스의 서버에는 클라이언트의 처리 능력에 따라 메시지가 전송됩니다. 일반적으로 이 경우에는 단일 연결로 기기의 네트워크 카드를 채울 수 없습니다. 새로운 메시징 서비스의 다중 연결은 사용자 그룹화 또는 클러스터 배포 시나리오에서 더 일반적으로 사용됩니다.

메시지 재전송 로직은 무엇인가요?
연결이 끊어진 경우(예: 애플리케이션 중단) 서버에 메시지가 누적되며, 애플리케이션이 다시 연결되면 누적된 메시지가 순차적으로 클라이언트에 푸시됩니다. 메시지가 생성된 시점부터 애플리케이션이 이를 수신하지 못한 경우, 서버의 최대 보유 기간은 3일이며, 3일을 초과하면 자동으로 삭제됩니다. 연결은 정상이지만 메시지 처리에 실패한 경우 서버는 빠르면 10분마다 처음으로 메시지를 다시 보냅니다. 애플리케이션이 계속해서 처리에 실패하면 서버는 메시지가 지워질 때까지 정기적으로 메시지를 다시 보냅니다.

PHP에서 json_decode의 정수 오버플로 문제
PHP 버전 5.3 이하에서는 json_decode가 운영 체제의 자릿수에 의존하여 숫자를 해석합니다. 32비트 시스템에서는 최대 2^32개의 숫자 해석만 지원합니다. 64비트 시스템에서는 최대 2^32를 지원합니다. 숫자 2^64에 대한 설명입니다. 메시지 서비스의 메시지 ID가 32비트 시스템의 최대값을 초과하므로 PHP 버전 5.3 이상으로 업그레이드하지 않으면 잘못된 메시지 ID가 확인되어 메시지가 반복적으로 전달됩니다. 해결책은 다음과 같습니다. 1. PHP를 5.3 이상으로 업그레이드합니다. 2. 애플리케이션을 64비트 시스템에 배포합니다. 3. 정규식 및 기타 방법을 통해 JSON 메시지의 숫자를 문자열로 바꿉니다.

메시지 연결 끊김 및 하트비트 테스트
클라이언트는 메시지 연결을 직접 끊어야 합니다: TmcClient.close(); 연결이 정상인지 확인하기 위한 하트비트 테스트: TmcClient.isOnline();

Tmall 환불과 Taobao 환불의 차이점
Tmall 환불에는 Tmall 주문만 포함되며 Taobao 환불에는 Taobao 및 Tmall 주문이 포함됩니다. 그러나 Tmall 환불 상태는 조금 더 풍부하고 더 많은 프로세스가 필요합니다. 사용하지 않는 경우 타오바오 환불 메시지를 활용하는 것이 좋습니다. 필요한 경우 Tmall 환불 API 권한을 신청해야 하며 신청 후 활성화할 수 있습니다.

메시징 서비스가 지연되나요?
사용자가 메시징 서비스 taobao.tmc.user.permit를 활성화하는 데 10초가 걸립니다. 메시지 사용에는 기본적으로 지연이 없으며, 1초 이내에 수신됩니다. 메시지가 누적되거나 프로그램이 제 시간에 처리되지 않으면 지연이 발생합니다. 지연 시간은 프로그램 처리 능력과 관련이 있습니다. 사용자에 대한 메시지 서비스 취소는 taobao.tmc.user.cancel 이후 1초 이내에 적용됩니다. 취소 후에도 누적된 메시지는 계속 발송되며, 새로운 메시지는 발송되지 않습니다.

제품 메시지 message.getContent()의 닉네임이 비어있는 것이 정상인가요? 메시지가 어느 상점에 속하는지 어떻게 알 수 있나요?
상품정보에는 닉네임이 비어있는 경우가 있습니다. 외부 레이어를 사용하여 message.getUserNick() 또는 message.getUserId()를 가져올 수 있습니다.

메시지 서비스, 사용자가 만료되어도 메시지를 계속 받을 수 있나요?
메시지 서비스 푸시 여부를 판단하는 데는 두 가지 조건이 있습니다. 1. 사용자 인증이 유효 기간 이내인지 여부 2. 사용자가 메시지 서비스(toabao.tmc.user.permit)를 활성화했는지 여부. 두 가지가 동시에 만족될 때만 푸시됩니다. 반대로, 사용자 권한이 만료되면 푸시되지 않습니다. 또한, 사용자 권한이 만료된 후 1개월 이내에 사용자의 활성화 관계가 저장되며, 1개월 후에는 삭제됩니다. 사용자가 한 달 이내에 재승인하는 경우 해당 사용자에 대해 메시징 서비스를 다시 활성화할 필요가 없습니다.

메시지를 받은 후 확인되지 않으면 메시지 서비스에서 다시 보낼 기회를 선택합니다. 지금까지 메시지 서비스에서 재전송 횟수를 제어합니다.
메시징 서비스는 10분마다 처리되지 않은 메시지를 확인한 후 적절한 시간에 전송합니다. 3일 이내에 메시지가 확인되지 않으면 삭제됩니다

메시지를 받지 못했습니다. 메시지 서비스가 메시지를 놓쳤는지 어떻게 확인하나요?
일상 피드백을 통해 메시지 서비스에서 메시지 유출은 없습니다. 일반적으로 ISV 프로그램이 메시지를 수신하지 못하거나 프로그램 처리 능력으로 인해 메시지가 차단됩니다. 문제 해결 메시지는 다음 측면에서 확인할 수 있습니다.
* 먼저 인증(SessionKey)이 유효한지 확인하세요.
* taobao.tmc.user.get을 호출하여 현재 사용자와 활성화된 메시지를 확인하고 반환 매개변수를 항목에 전달합니다. ; TmcClient.isOnline()을 호출하여 하트비트가 정상적으로 연결되어 있는지 테스트합니다. 위의 문제 해결이 실패할 경우 지원 센터에 문제를 제출하고 AppKey, 사용자 닉네임, 메시지 상태, 대략적인 메시지 시간, 주문 시간 및 제품 num_iid를 첨부할 수 있습니다.

클라이언트 구성 매개변수에 대한 참고사항
.NET SDK: ReconnectIntervalSeconds 재연결 시간은 TmcClient 연결이 끊어졌을 때 재연결을 위한 시간 간격을 식별합니다. 이 값은 10초보다 커야 합니다. 이 값이 너무 작으면 링크가 실패합니다. 그 이유는 서버가 500ms 이내에 다시 연결을 감지하면 새 링크의 연결을 끊기 때문입니다.

상품 재고 변경 관련 주의사항

  • API(taobao.item.quantity.update, 수량 변경은 taobao.item.sku.update)를 통해 상품 재고가 수정되면 taobao_item_ItemStockChanged 메시지가 생성됩니다. .
  • API(taobao.item.update)를 통해 상품 수량을 업데이트하거나 페이지를 통해 상품 재고를 수정하는 경우, 상품 변경 메시지(taobao_item_ItemUpdate)만 생성되고, taobao_item_ItemStockChanged 메시지만 전송되지 않습니다. 제품 재고 수량을 포함하며 금액 변동은 없습니다.

다음 작업에서는 상품의 재고 수량을 직접 반환합니다.

  • 상품을 촬영(재고를 줄이기 위해 촬영)하거나 결제(재고를 줄이기 위해 결제)(API를 통한 거래 생성 포함)할 때, 위의 메시지가 생성됩니다.
  • 이 메시지는 주문이 종료되거나 하위 주문이 종료될 때 생성됩니다(API를 통한 거래 종료 포함).
  • 구매자가 결제를 완료하고 판매자가 페이지를 통해 주문 상품의 SKU를 수정하면 해당 상품의 SKU 재고도 변경되어 위의 메시지가 생성됩니다. (거래 변경 메시지 taobao_trade_TradeChanged도 생성됩니다) 이번에는).

환불 관련 메시지 설명
taobao.trade.fastrefund(빠른 환불) 인터페이스를 통해 환불하는 경우 환불 관련 메시지가 생성되지 않습니다. 빠른 환불 인터페이스(taobao.trade.fastrefund)는 구매자에게 직접 지불한 후 거래를 종료하므로 환불 프로세스가 생성되지 않습니다. 현재 가상 카테고리만 taobao.trade.fastrrefund 인터페이스를 지원합니다.

시간, 외근시간, 현지시간 메시지 관련 필드 설명

  • time은 메시지 생성 시간입니다.
  • outtime은 메시지의 현재 푸시 시간입니다.
  • localtime은 로컬 시스템의 시간입니다.
  • outtime - time은 서버의 처리 또는 재전송 지연 시간을 나타냅니다.
  • localtime - outtime은 나타냅니다. 로컬 머신의 시간과 TOP 시차, 네트워크 지연, 메시지 수신 후 처리 지연

메시지 서비스 오류 isp.system-error: 알 수 없는 오류,isv.tmc-switch-off: appkey, the 앱은 메시징 채널 기능을 활성화하지 않습니다.
애플리케이션이 메시지 서비스를 구독(활성화)하지 않은 경우 TmcClient를 사용하여 메시지를 수신합니다.

FAQ

  • 이 문서에 대한 FAQ는 아직 없습니다