nezha-docs
nome | porta de entrada | Ações de apoio | Retorno de chamada de suporte | Observação |
---|---|---|---|---|
alipay_app | Pagamento do aplicativo Alipay | Pagamento/Consulta de Pagamento/Reembolso | pagar | |
alipay_qr | Pagamento com código de digitalização Alipay | Pagamento/Consulta de Pagamento/Reembolso | pagar | |
alipay_wap | Pagamento do site móvel Alipay | Pagamento/Consulta de Pagamento/Reembolso | pagar | |
alipay_web | Pagamento do site Alipay PC | Pagamento/Consulta de Pagamento/Reembolso | pagar | |
wechat_app | Pagamento pelo APP WeChat | Pagamento/Consulta de Pagamento/Reembolso/Consulta de Reembolso | Aviso de pagamento/aviso de reembolso | |
wechat_h5 | Pagamento WeChat H5 | Pagamento/Consulta de Pagamento/Reembolso/Consulta de Reembolso | Aviso de pagamento/aviso de reembolso | Função integrada de obtenção de links de pagamento |
wechat_mina | Pagamento do miniprograma WeChat | Pagamento/Consulta de Pagamento/Reembolso/Consulta de Reembolso | Aviso de pagamento/aviso de reembolso | |
wechat_oficial | Pagamento da conta oficial do WeChat | Pagamento/Consulta de Pagamento/Reembolso/Consulta de Reembolso | Aviso de pagamento/aviso de reembolso | |
wechat_qr | Pagamento de código de digitalização WeChat | Pagamento/Consulta de Pagamento/Reembolso/Consulta de Reembolso | Aviso de pagamento/aviso de reembolso | |
união_web | Pagamento online UnionPay | Pagamento/Consulta de Pagamento | aviso de pagamento | versão mais antiga |
união_app | Pagamento online UnionPay | pagar | aviso de pagamento | versão mais antiga |
paypal_express_checkout | Check-out expresso do PayPal | Pagamento/Consulta de Pagamento | aviso de pagamento | instável |
pingan_wechat_h5 | Pagamento Ping An Bank WeChat H5 | Pagamento/Consulta de Pagamento/Reembolso | pagar | |
wechatoversea_oficial | Pagamento de conta pública transfronteiriça WeChat | Pagamento/Consulta de Pagamento/Reembolso | pagar |
Ao conectar-se a pagamentos de terceiros, especialmente ao conectar-se a vários pagamentos de terceiros, você precisa ler documentos de terceiros e gastar muito tempo montando e depurando parâmetros, como ligar para um terceiro para fazer um pedido e criar um pagamento. Se você precisar se conectar ao WeChat e ao Alipay ao mesmo tempo, então você precisa coletar documentos, o que pode ser considerado muito problemático (na verdade, está tudo bem... hhh...).
Este componente fornece três partes para comunicação com terceiros:
Cada parte é dividida em diferentes ações. Cada ação está vinculada a um formulário fixo (Formulário), e o conteúdo de cada formulário é fixo.
Por exemplo, ao chamar ativamente um terceiro para fazer um pedido e criar um pagamento (ChargeRequest), o formulário que ele utiliza é ChargeRequestForm
. Após preencher o formulário e passar o componente, o componente pode processar os parâmetros e chamar o terceiro. -pagamento partidário.
Dessa forma, você só precisa entender o conteúdo do formulário do componente para conectar-se a múltiplos pagamentos de terceiros, de uma vez por todas (inexistente hhh).
Aqui tomamos o pagamento do site Alipay PC como exemplo. Se você precisar usar outros gateways de pagamento, você só precisará modificar $gateway
passado ao instanciar Cashier
.
Observe que a unidade monetária base usada pelo componente é centavos.
<?php
use Runner NezhaCashier Cashier ;
// 按格式组装好配置
$ config = [
' app_id ' => ' xxxx ' ,
' app_private_key ' => ' xxxxx ' ,
' alipay_public_key ' => ' xxxxx ' ,
];
// 创建实例, 传入要使用的 Gateway
$ cashier = new Cashier ( ' alipay_web ' , $ config );
Criar pagamento
<?php
// 组装 ChargeRequestForm
$ data = [
' order_id ' => ' 151627101400000071 ' ,
' subject ' => ' testing ' ,
' amount ' => 1 ,
' currency ' => ' CNY ' ,
' description ' => ' testing description ' ,
' return_url ' => ' https://www.baidu.com ' ,
' expired_at ' => ' 2018-01-23 19:00:00 ' ,
];
$ form = $ cashier -> charge ( $ data );
// 以 laravel 为例
return redirect ( $ form -> get ( ' charge_url ' ));
Verifique o pagamento
<?php
$ form = $ cashier -> query ([
' order_id ' => ' 151627101400000071 ' ,
]);
var_dump ( ' paid ' === $ form -> get ( ' status ' ));
receber notificações
<?php
$ form = $ cashier -> notify ( ' charge ' );
var_dump ( ' paid ' === $ form -> get ( ' status ' ));
var_dump ( $ form -> get ( ' trade_sn ' )); // 取得第三方交易号
Reembolso
<?php
$ form = $ cashier -> refund ([
' order_id ' => ' 151627101400000071 ' ,
' refund_id ' => ' 3151627101400000071 ' ,
' total_amount ' => 1 ,
' refund_amount ' => 1 ,
]);
Nome do campo | É necessário | Descrição do campo | Observação |
---|---|---|---|
id_pedido | sim | Número do pedido | |
assunto | sim | Título do pedido | |
quantia | sim | Valor do pedido | Observe que alguns canais de pagamento têm limite máximo de valor. |
moeda | sim | Moeda do pedido | Preste atenção aos canais de pagamento |
descrição | sim | Descrição do pedido | Canais de pagamento terão limites de duração diferentes |
user_ip | não | IP do usuário | |
url_retorno | não | endereço de retorno de chamada | O canal de pagamento do tipo web deve ser preenchido |
mostrar_url | não | endereço de exibição | |
corpo | não | Detalhes do pedido | Eu deveria excluir este parâmetro |
expirado_em | não | Prazo de validade | carimbo de data/hora Unix |
criado_em | não | hora de criação | Carimbo de data e hora Unix, você não acredita que precisa disso? |
Outros ainda serão adicionados...
P : Quais são as vantagens em comparação com outros SDKs?
R : Não importa quão elegante ou fácil de usar o SDK seja, a maioria deles exige que você passe os parâmetros de acordo com os nomes dos parâmetros de terceiros. Então você terá que ler a documentação e fazer muito processamento no arquivo. código. O que eu quero é que depois de buscar o pedido no banco de dados, ele possa ser processado uma vez para acessar vários pagamentos.
P : É desnecessário ler os documentos de pagamento de terceiros?
R : Não, sugiro que você ainda precise dar uma olhada nele, e alguns pagamentos no componente (como a conta oficial do WeChat) precisam passar alguns parâmetros especiais. O componente apenas ajuda a resolver o chato problema de chamada.
MIT