Nota: Como os dados JSON transferidos via JS não contêm informações de tipo, podem ocorrer erros de tipagem durante a conversão para dicionário na camada Native. Recomendamos transmitir valores numéricos precisos como strings. Por exemplo, {"value":9.45} será convertido para {"value":9.449999999999999} na camada Native antes do envio ao servidor. Para evitar esse erro, utilize {"value":"9.45"}.
Instruções de uso da API RPC
AlipayJSBridge.call('rpc', {
operationType: 'alipay.client.xxxx',
requestData: [],
headers: {}
}, function(result) {
console.log(result);
});
Exemplo de código
<h1>Click the button to initiate an RPC request.</h1>
<a href="javascript:void(0)" class="btn rpc">Initiate a request.</a><br/>
<a href="javascript:void(0)" class="btn rpcHeader">Initiate a request with a response header returned.</a>
<script>
function ready(callback) {
// Call JS Bridge if it has been injected.
if (window.AlipayJSBridge) {
callback && callback();
} else {
// Listen to the injection event if it has not been injected.
document.addEventListener('AlipayJSBridgeReady', callback, false);
}
}
ready(function() {
document.querySelector('.rpc').addEventListener('click', function() {
AlipayJSBridge.call('rpc', {
operationType: 'alipay.client.xxxx',
requestData: [],
headers: {}
}, function(result) {
alert(JSON.stringify(result));
});
});
document.querySelector('.rpcHeader').addEventListener('click', function() {
AlipayJSBridge.call('rpc', {
operationType: 'alipay.client.xxxx',
requestData: [],
headers: {},
getResponse: true
}, function(result) {
alert(JSON.stringify(result));
});
});
});
</script>
API
AlipayJSBridge.call('rpc', {
operationType:,
requestData:,
headers
}, fn);
Parâmetros de entrada
Nome | Tipo | Descrição | Obrigatório | Valor padrão |
operationType | string | Nome do serviço RPC. | Y | - |
requestData | array | Parâmetro da requisição RPC. Construa este parâmetro conforme a API RPC específica. | N | - |
headers | object | Cabeçalhos definidos para a requisição RPC. | N | {} |
gateway | string | Endereço do gateway. | N | Gateway do Alipay |
compress | boolean | Indica se há suporte para compressão gzip na requisição. | N | true |
disableLimitView | boolean | Impede a exibição da janela unificada de limitação de tráfego quando o gateway RPC sofre throttling. | N | false |
timeout | int | Duração do tempo limite do RPC, em segundos. | N | O framework define os tempos limite de forma unificada e a política é complexa. Especificamente, o tempo limite é de 20s em ambiente Wi-Fi para iOS e 30s nos demais ambientes. No Android, o tempo limite varia entre 12s e 42s em ambientes Wi-Fi ou 4G, e entre 32s e 60s nos outros ambientes. |
getResponse | boolean | Obtém o cabeçalho de resposta RPC. Nota: se definido como true, os dados de resposta recebem uma camada adicional de aninhamento, permitindo obter o trace ID/entity ID durante o relatório de fluxo de dados. | N | false |
fn | function | Função de callback. | N | - |
Parâmetros de saída
Parâmetro retornado na função de callback: result: {error }
|
Nome |
Tipo |
Descrição |
|
error |
string |
Código de erro |
Descrição dos códigos de erro
|
Código de erro |
Descrição |
|
10 |
Erro de rede |
|
11 |
Tempo limite da requisição |
|
Outros |
Definido pelo Mobile Gateway |
Códigos de erro RPC Native
|
Código de erro |
Descrição |
|
1000 |
Sucesso |
|
0 |
Erro desconhecido |
|
1 |
O cliente não encontrou o objeto de comunicação. |
|
2 |
Acesso à rede indisponível no cliente (o código de erro é convertido para 10 na JSAPI). |
|
3 |
Certificado do cliente incorreto. |
|
4 |
Tempo limite esgotado na conexão de rede do cliente. |
|
5 |
Velocidade da conexão de rede do cliente muito baixa. |
|
6 |
O servidor não respondeu à requisição do cliente. |
|
7 |
Erro de IO de rede no cliente. |
|
8 |
Erro de agendamento de requisição de rede no cliente. |
|
9 |
Erro de processamento no cliente. |
|
10 |
Erro de desserialização de dados no cliente ou formato dos dados incorreto no servidor. |
|
11 |
Falha ao fazer login no cliente. |
|
12 |
A conta de login no cliente foi alterada. |
|
13 |
Requisição interrompida. Por exemplo, a requisição de rede é interrompida quando a thread é interrompida. |
|
14 |
Erro de cache de rede no cliente. |
|
15 |
Erro de autorização de rede no cliente. |
|
16 |
Erro de resolução DNS. |
|
17 |
operationType não está na lista de permissões. |
|
1001 |
Acesso negado. |
|
1002 |
Limite de chamadas excedido: O sistema está ocupado. Tente novamente mais tarde. |
|
2000 |
Tempo limite de login esgotado. Faça login novamente. |
|
3000 |
Nenhum tipo de operação presente ou tipo de operação não suportado. |
|
3001 |
Dados da requisição vazios: O sistema está ocupado. Tente novamente mais tarde. |
|
3002 |
Formato de dados incorreto. |
|
4001 |
Tempo limite da requisição de serviço esgotado. Tente novamente mais tarde. |
|
4002 |
Exceção ao chamar remotamente o sistema de serviço: A rede está ocupada. Tente novamente mais tarde. |
|
4003 |
Falha ao criar agente de chamada remota: A rede está ocupada. Tente novamente mais tarde. |
|
5000 |
Erro desconhecido: Desculpe. Operações não permitidas no momento. Tente novamente mais tarde. |
|
6000 |
Serviço RPC não encontrado. |
|
6001 |
Método alvo RPC não encontrado. |
|
6002 |
Quantidade de parâmetros RPC incorreta. |
|
6003 |
Método alvo RPC inacessível. |
|
6004 |
Exceção de parsing JSON RPC. |
|
6005 |
Parâmetros RPC inválidos ao chamar o método alvo. |
|
6666 |
Exceção no serviço RPC. |
|
7000 |
Nenhuma chave pública definida. |
|
7001 |
Parâmetros insuficientes para verificação de assinatura. |
|
7002 |
Falha na verificação de assinatura. |
|
7003 |
Falha na verificação de timestamp da assinatura. |
|
7004 |
Parâmetro operationType vazio na API RPC de verificação de assinatura. |
|
7005 |
Parâmetro productId vazio. |
|
7006 |
API de verificação de assinatura: Parâmetro did vazio. |
|
7007 |
API de verificação de assinatura: Parâmetro t (hora de envio da requisição) vazio. |
|
7008 |
API de verificação de assinatura: Parâmetro IMEI (identificador do dispositivo cliente) vazio. |
|
7009 |
API de verificação de assinatura: Parâmetro IMSI (identificador do usuário cliente) vazio. |
|
7010 |
API de verificação de assinatura: Número da versão da API vazio. |
|
7011 |
API de verificação de assinatura: Usuário não autorizado. |
|
7012 |
API de verificação de assinatura: API RPC não liberada. |
|
7013 |
API de verificação de assinatura: ID do produto não registrado ou nenhuma chave obtida. |
|
7014 |
API de verificação de assinatura: Dados da assinatura vazios. |
|
7015 |
API de verificação de assinatura: Assinatura inválida. |
|
7016 |
API de verificação de assinatura: sid transmitido na API RPC de requisição de login está vazio. |
|
7017 |
API de verificação de assinatura: sid transmitido na API RPC de requisição de login é inválido. |
|
7018 |
API de verificação de assinatura: token transmitido na API RPC de requisição de login é inválido. |
|
7019 |
API de verificação de assinatura: alipayuserid obtido pela API RPC de requisição de login está vazio. |
|
8001 |
etag: Os dados de resposta não sofreram alterações. |
Gateway personalizado RPC
Especifique o endereço do gateway para envio de requisições no RPC.
Lógica de throttling RPC
|
Versão do container |
disableLimitView |
Ação |
Parâmetro de callback |
|
<=9.9.5 |
true |
Silencioso |
1002 |
|
<=9.9.5 |
false |
Alerta |
1002 |
|
>=9.9.6 |
true |
Silencioso |
1002 |
|
>=9.9.6 |
false |
Tratamento pelo gateway |
100201 |
|
Tipo de ação |
Descrição |
|
Silencioso |
Nenhuma ação |
|
Alerta |
Exibe uma caixa unificada de throttling, conforme a figura a seguir. |
|
Toast |
Exibe um toast do sistema. Se o usuário sair do sistema, nenhum toast aparece. |
|
Tratamento pelo gateway |
A ação pode ser silenciosa, alerta ou toast, dependendo da configuração RPC do gateway. |
Caixa pop-up de throttling RPC

Perguntas frequentes
P: Como lidar com ESLint: 'AlipayJSBridge' is not defined?
R: Para resolver problemas de indefinição do AlipayJSBridge, tente uma das duas soluções abaixo:
-
Solução 1:
window.AlipayJSBridge.call('rpc'); -
Solução 2:
const { AlipayJSBridge } = window; AlipayJSBridge.call('rpc');