>  기사  >  백엔드 개발  >  사용자가 PHP로 결제한 후 자동으로 지정된 페이지로 이동하는 기능을 구현하는 방법

사용자가 PHP로 결제한 후 자동으로 지정된 페이지로 이동하는 기능을 구현하는 방법

PHPz
PHPz원래의
2023-04-21 09:11:121978검색

웹사이트 개발 시 사용자가 결제한 후 자동으로 특정 페이지로 이동하는 기능을 구현해야 하는 경우가 많습니다. 이 기능은 PHP에서 구현하기가 매우 간단합니다. 구체적인 구현 방법은 다음과 같습니다.

  1. 결제 링크 생성

결제 후 사용자가 자동으로 지정된 페이지로 이동할 수 있도록 하려면 먼저 결제 링크를 생성해야 합니다. 결제 링크에는 결제 플랫폼으로 전송되는 주문 정보, 수집 계정 정보 등 중요한 정보가 포함되어 있으며, 결제 금액, 주문 설명, 콜백 주소도 지정해야 합니다.

Alipay를 예로 들면, 결제 링크 생성을 위한 기본 형식은 다음과 같습니다.

https://mapi.alipay.com/gateway.do?service=mobile.securitypay.pay&partner=[PARTNER]&seller_id=[SELLER_ID]&out_trade_no=[OUT_TRADE_NO]&subject=[SUBJECT]&body=[BODY]&total_fee=[TOTAL_FEE]&notify_url=[NOTIFY_URL]&payment_type=1&_input_charset=UTF-8&it_b_pay=[TIMEOUT]

그 중 [PARTNER]와 [SELLER_ID]는 Alipay 계정의 파트너 ID와 판매자 계정 식별에 필요합니다. Alipay에 의해 배포됩니다. [OUT_TRADE_NO]는 판매자 웹사이트에서 생성된 고유 주문 번호입니다. [SUBJECT] 및 [BODY]는 각각 주문의 제목과 내용 설명입니다. [NOTIFY_URL] ]는 판매자 서버 http 경로를 알리기 위해 Alipay 서버의 이니셔티브에 지정된 페이지입니다. [TIMEOUT]은 분 형식으로 표시되는 주문 시간 초과 시간입니다.

기본 결제 링크 구성 규칙을 사용하면 PHP의 문자열 대체 기능을 사용하여 다양한 결제 링크를 동적으로 생성하고 개인화된 결제 페이지를 구현할 수 있습니다.

  1. 결제 페이지 구성

결제 링크를 구성한 후에는 결제 페이지에 삽입해야 합니다. 일반적으로 결제 페이지에는 주문 정보, 결제 금액, 결제 방법 선택 등이 포함되어야 합니다. 마지막으로 사용자가 결제 방법을 선택한 후 "결제" 버튼을 클릭하여 결제 작업을 완료해야 합니다.

PHP에서 결제 페이지를 생성하는 방법도 매우 간단합니다. HTML과 CSS를 사용하여 결제 페이지의 프레임워크를 구축한 다음 PHP를 사용하여 주문 정보 및 기타 콘텐츠를 동적으로 생성하고 최종적으로 HTML 코드를 출력할 수 있습니다.

  1. 결제 결과 처리

결제가 완료된 후 결제 플랫폼은 판매자 서버에 결제 결과를 알리고 판매자 서버는 이러한 결제 결과를 적시에 처리하고 주문 상태를 업데이트하고 해당 항목을 표시해야 합니다. 결제 결과 페이지를 사용자에게 제공합니다.

PHP에서 결제 결과를 처리하는 방법도 매우 간단합니다. 결제 플랫폼에서 보낸 POST 요청을 수신하고 POST 매개변수를 구문 분석하여 결제 결과 정보를 얻은 다음 이를 기반으로 주문 상태 및 사용자 페이지 표시를 업데이트할 수 있습니다. 결제 결과.

  1. 결제 결과 페이지로 이동

마지막 단계는 결제 결과 페이지로 이동하는 것입니다. 결제가 완료되어 처리되면 사용자가 결제 상태와 결제 완료 여부를 이해할 수 있도록 해당 결제 결과 페이지로 점프해야 합니다. PHP에서 다른 페이지로 이동하는 것도 매우 간단하며 헤더 기능을 사용하여 수행할 수 있습니다.

다음은 PHP 후불 점프 코드 예시입니다.

<?php
//构造付款链接
$partner = "123456";
$seller_id = "sellerID";
$out_trade_no = "201080930173201";
$subject = "测试订单";
$body = "这是一份测试订单";
$total_fee = "0.01";
$notify_url = "http://www.example.com/index.php";
$timeout = "30m";

$pay_url = "https://mapi.alipay.com/gateway.do?service=mobile.securitypay.pay&partner=$partner&seller_id=$seller_id&out_trade_no=$out_trade_no&subject=$subject&body=$body&total_fee=$total_fee&notify_url=$notify_url&payment_type=1&_input_charset=UTF-8&it_b_pay=$timeout";

//构造付款页面
$order_id = "201080930173201";
$pay_amount = "0.01";

$html = "<!DOCTYPE html>
<html>
<head>
    <title>付款页面</title>
    <meta charset=&#39;UTF-8&#39;>
    <link rel=&#39;stylesheet&#39; href=&#39;style.css&#39;>
</head>
<body>
    <div class=&#39;container&#39;>
        <h2>订单信息</h2>
        <table>
            <tr>
                <th>订单编号:</th>
                <td>$order_id</td>
            </tr>
            <tr>
                <th>订单金额:</th>
                <td>$pay_amount 元</td>
            </tr>
        </table>
        <form method=&#39;post&#39; action=&#39;$pay_url&#39;>
            <p><input type=&#39;radio&#39; name=&#39;pay_method&#39; value=&#39;alipay&#39; checked>支付宝</p>
            <p><input type=&#39;radio&#39; name=&#39;pay_method&#39; value=&#39;wechatpay&#39;>微信支付</p>
            <p><input type=&#39;submit&#39; value=&#39;支付&#39;></p>
        </form>
    </div>
</body>
</html>";

echo $html;

//处理支付结果
if($_POST['trade_status'] == 'TRADE_FINISHED' || $_POST['trade_status'] == 'TRADE_SUCCESS'){
    //更新订单状态
    $order_id = $_POST['out_trade_no'];
    $sql = "UPDATE orders SET status=1 WHERE order_id='$order_id'";
    mysqli_query($conn, $sql);
    //跳转到支付结果页面
    header('Location: http://www.example.com/pay_success.php');
}else{
    header('Location: http://www.example.com/pay_failed.php');
}
?>

이 샘플 코드는 PHP를 사용하여 자동 후불 점프 기능을 구현하는 방법을 보여 주며, 결제 링크 구성, 결제 페이지 구성, 결제 결과 처리 및 Jump to Results 페이지 등 일련의 작업이 PHP 개발 초보자에게 도움이 되기를 바랍니다.

위 내용은 사용자가 PHP로 결제한 후 자동으로 지정된 페이지로 이동하는 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.