PHPでユーザーの決済後に自動的に指定ページへジャンプする機能を実装する方法

PHPz
リリース: 2023-04-21 09:57:34
オリジナル
1979 人が閲覧しました

Webサイト開発において、ユーザーが決済を行った後に自動的に指定したページにジャンプする機能を実装する必要が生じることがありますが、この機能は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] はパートナー ID と販売者アカウント ID です。 Alipay アカウント。この情報は Alipay によって割り当てられる必要があります。[OUT_TRADE_NO] は販売者の Web サイトによって生成された一意の注文番号です。[SUBJECT] と [BODY] はそれぞれ注文のタイトルと内容の説明です。[TOTAL_FEE] は注文金額 (人民元)、[NOTIFY_URL] は Alipay サーバーです 指定されたページの http パスをマーチャント サーバーに積極的に通知します、[TIMEOUT] は注文タイムアウト (分単位) です。

基本的な支払いリンク構築ルールを使用すると、PHP の文字列置換関数を使用して、さまざまな支払いリンクを動的に生成し、パーソナライズされた支払いページを実装できます。

  1. 支払いページの構築

支払いリンクを構築した後、それを支払いページに埋め込む必要があります。一般的に、支払いページには、注文情報、支払い金額、支払い方法の選択などを含める必要があります。最後に、ユーザーは支払い方法を選択した後、「支払う」ボタンをクリックして支払い操作を完了する必要があります。

PHP で決済ページを生成する方法も非常に簡単で、HTML と CSS を使用して決済ページの枠組みを構築し、PHP を使用して注文情報などのコンテンツを動的に生成し、最終的に出力することができます。 HTMLコード。

  1. 支払い結果の処理

支払いが完了すると、支払いプラットフォームは販売者のサーバーに支払い結果を通知します。販売者のサーバーはこれらの支払い結果を処理する必要があります。タイムリーに注文ステータスを更新し、販売者サーバーに報告すると、対応する支払い結果ページがユーザーに表示されます。

PHP での決済結果の処理方法も非常にシンプルで、決済プラットフォームから送信された POST リクエストを受信し、POST パラメーターを解析して決済結果情報を取得し、注文ステータスやユーザーを更新することができます。決済結果に応じたページ表示。

  1. 支払い結果ページにジャンプします

最後のステップは、支払い結果ページにジャンプすることです。支払いが完了して処理されると、ユーザーが支払いステータスと支払いが完了したかどうかを理解できるように、対応する支払い結果ページにジャンプする必要があります。 PHP で別のページにジャンプすることも非常に簡単で、header 関数を使用して実現できます。

以下は、支払い後の 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 を使用して支払い後の自動ジャンプ機能を実装する方法を示しており、支払いリンクの構築、支払いの構築が含まれています。決済結果の処理や結果ページへのジャンプなどの一連の操作について、PHP開発初心者の方の参考になれば幸いです。

以上がPHPでユーザーの決済後に自動的に指定ページへジャンプする機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート