English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Primeiro, por favor, solicite uma conta de interface de pagamento à tempo real no Alipay, é necessário apresentar documentos relevantes para a solicitação. Em seguida, faça a integração conforme o documento do API de pagamento à tempo real. O documento do API oferece demos em várias versões de idioma, aqui estou usando a demo em php, e então faço as operações de modificação relevantes. Você também pode integrar novamente o código da versão demo, aqui estou temporariamente não reestruturando o código para que o processo de recarga à tempo real funcione.
前台表单提交
<form action="/pay/alipayapi.php" class="tm-panel-small uk-form uk-form-stacked" method="post" target="_blank"> <div class="element" style="margin-top:60px;"> </div> <div class="uk-form-row"> <div class="uk-form-controls"> <label for="form-username" class="uk-form-label" style="display:inline-block;padding: 0 10px;vertical-align: middle;margin-left:-20px;">订单序号:</label> <input class="uk-form-width-large" type="text" name="WIDout_trade_no" id="out_trade_no" value="<?php echo trim($_GET['orderid']);?>" > <br> </div> </div> <div class="uk-form-row"> <div class="uk-form-controls"> <label for="form-username" class="uk-form-label" style="display:inline-block;padding: 0 10px;vertical-align: middle;margin-left:-20px;">商品名称:</label> <input class="uk-form-width-large" type="text" name="WIDsubject" value="<?php echo trim($_GET['orderid']);?>" > <br> </div> </div> <div class="uk-form-row"> <div class="uk-form-controls"> <label for="form-username" class="uk-form-label" style="display:inline-block;padding: 0 10px;vertical-align: middle;margin-left:-20px;">付款金额:</label> <input class="uk-form-width-large" type="text" name="WIDtotal_fee" value="<?php echo trim($_GET['amt']);?"> <br> </div> </div> <div class="uk-form-row"> <div class="uk-form-controls"> <label for="form-username" class="uk-form-label" style="display:inline-block;padding: 0 10px;vertical-align: middle;margin-left:-20px;">商品描述:</label> <input class="uk-form-width-large" type="text" name="WIDbody" value="订单测试支付"> <br> </div> </div> <input type="hidden" name="uid" value="<?php echo $_GET['uid'];?"> <input type="hidden" name="codes" value="<?php echo $_GET['code'];?"> <input type="hidden" name="tags" value="<?php echo $_GET['tag'] ?"> <div class="uk-form-row"> <input class="uk-button uk-button-primary uk-button-large uk-width-1-1" type="submit" class="alisubmit" value ="Confirmar pagamento"> </div> </div> </form>
Configura o arquivo de configuração alipay.config.php, configura principalmente os seguintes parâmetros
$alipay_config['partner'] configura o ID da conta de assinatura
$alipay_config['key'] configura MD5Verificação de key
$alipay_config['notify_url'] configura o endereço de callback assíncrono
$alipay_config['return_url'] configura o endereço de retorno de chamada
$alipay_config['transport'] configura o tipo de protocolo, o padrão é http
$alipay_config['partner'] = 'xxxxxxxxxxxx'; //Conta do支付宝 recebimento, com2088Começa com16String composta por dígitos, geralmente a conta de recebimento é a conta de assinatura $alipay_config['seller_id'] = $alipay_config['partner']; // MD5Chave secreta, código de verificação de segurança, composto por dígitos e letras32String de dígitos, consulte o endereço: https://b.alipay.com/order/pidAndKey.htm $alipay_config['key'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // Página de notificação assíncrona do servidor, precisa ser http://caminho completo do formato, não pode adicionar?id=123Este tipo de parâmetros personalizados, deve ser acessível via internet $alipay_config['notify_url'] = "http://xx.xx.xx.xx/pay/notify_url.php"; // Notificação de página de rolagem sincronizada, a página de rolagem precisa ser http://caminho completo do formato, não pode adicionar?id=123Este tipo de parâmetros personalizados, deve ser acessível via internet $alipay_config['return_url'] = "http://xx.xx.xx.xx/pay/return_url.php"; //Método de assinatura $alipay_config['sign_type'] = strtoupper('MD5); //Formato de codificação de caracteres, atualmente suportado gbk ou utf-8 $alipay_config['input_charset']= strtolower('utf-8); //Endereço do caminho do certificado ca, usado para a verificação ssl no curl //Certifique-se de que o arquivo cacert.pem esteja no diretório atual $alipay_config['cacert'] = getcwd().'\\cacert.pem'; //Modo de acesso, dependendo de se o seu servidor suporta acesso ssl, se suportar, selecione https; se não suportar, selecione http $alipay_config['transport'] = 'http'; // Tipo de pagamento, não precisa ser modificado $alipay_config['payment_type'] = "1"; // Tipo de produto, não precisa ser modificado $alipay_config['service'] = "create_direct_pay_by_user";
Após a conclusão do processamento do pagamento, as informações do pedido e o estado da transação serão enviadas para o return_url.php especificado, você pode usar o estado do pedido retornado para julgar se a transação foi bem-sucedida. Se bem-sucedida, vá para o próximo lógica (sua lógica de processamento de pedido), caso contrário, retorne como falhou.
<?php /* * * Função: Página de notificação de saltto sincronizado da página do Alipay * Versão:3.3 * Data:2012-07-23 * Nota: * O seguinte código é fornecido apenas como exemplo para facilitar o teste do comerciante e pode ser ajustado conforme necessário para o site do comerciante, não é necessário usar este código. * Este código é fornecido apenas para fins de aprendizado e pesquisa das interfaces do Alipay e fornece uma referência. Apenas para referência. *************************Descrição das funções da página************************* * Esta página pode ser testada no computador local * Código para melhorar a aparência da página HTML e código de lógica de negócios do comerciante * Esta página pode ser debugada com ferramentas de desenvolvimento PHP ou usando a função de escrita de texto logResult, que está desativada por padrão, veja a função verifyReturn no arquivo alipay_notify_class.php require_once("alipay.config.php"); require_once("lib/alipay_notify.class.php"); ?> <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8> <?php //Calcular o resultado de verificação da notificação $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyReturn(); if($verify_result) {//Verificação bem-sucedida ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Adicione o código do lógica de negócios do comerciante aqui //——Por favor, escreva o código do lógica de negócios do seu negócio com base em sua lógica de negócios—— //Obter os parâmetros de retorno da notificação do Alipay, consulte a lista de parâmetros de notificação de redirecionamento sincronizado na documentação técnica //Número do pedido do comerciante^M $out_trade_no = $_GET['out_trade_no']; //Número da transação do Alipay^M $trade_no = $_GET['trade_no']; //Status da transação $trade_status = $_GET['trade_status']; $total_fee = $_GET['total_fee']; //Obter dados de retorno do usuário $user_info = $_GET['extra_common_param']; $user_arr = explode('.',$user_info); $uid = $user_arr[0]; $code = $user_arr[1); $tags = $user_arr[2); if($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') { $types = "alipay"; $user_url = "/user_obj/do_orderinfo.php"; die("<script>;window.location='{$user_url}&"63;uid={$uid}&code={$code}&tags={$tags}&payAmount={$total_fee}&order={$out_trade_no}&types={$types}';</script>"); //Verifique se o pedido já foi processado no site do comerciante //Se você não realizou o processo, localize o detalhe do pedido (out_trade_no) no sistema de pedidos do site do comerciante e execute o programa de negócios do comerciante //Se você já realizou o processo, não execute o programa de negócios do comerciante } else { echo "trade_status=".$_GET['trade_status']; } var_dump($verify_result); echo "Verificação bem-sucedida<br />"; //——Por favor, escreva o programa com base em sua lógica de negócios (o código acima é apenas um exemplo)—— ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } else { //Falha na verificação //Para depuração, consulte a função verifyReturn na página alipay_notify.php echo "Falha na verificação"; } ?> <title>Interface de transação de pagamento instantâneo do Alipay</title> </head> <body> </body> </html>
O que foi mencionado acima é o que o editor apresentou sobre a integração do PHP com a função de pagamento instantâneo do Alipay, esperando ajudar a todos. Se você tiver qualquer dúvida, deixe um comentário e o editor responderá o mais rápido possível. Agradecemos também o apoio do site tutorial de clamor!
Declaração: o conteúdo deste artigo é de origem na internet, pertence ao respectivo proprietário, fornecido pelos usuários da internet, o site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidade legal. Se você encontrar conteúdo suspeito de infringir direitos autorais, envie um e-mail para: notice#oldtoolbag.com (ao enviar e-mail, substitua # por @ para denunciar, e forneça provas relacionadas. Em caso de verificação, o site deletará imediatamente o conteúdo suspeito de infringir direitos autorais.)