首頁  >  文章  >  後端開發  >  PHP與EasyWeChat: 微信小程式支付功能的開發實戰

PHP與EasyWeChat: 微信小程式支付功能的開發實戰

王林
王林原創
2023-07-19 09:15:181702瀏覽

PHP與EasyWeChat: 微信小程式支付功能的開發實戰

微信支付是目前最常用的行動支付方式之一,而微信小程式則成為了越來越多企業和開發者選擇的平台。在微信小程式中整合支付功能,可以為企業帶來更多的商機和便利。本文將介紹如何使用PHP和EasyWeChat來實現微信小程式支付功能的開發。

一、準備工作
在開始開發之前,我們需要準備以下資料:

  1. #微信支付商家號碼(mch_id)
  2. 微信支付商家密金鑰(key)
  3. 微信支付的App ID(appid)和App Secret(appsecret)
  4. 一個合法的憑證檔案
    以上資料可在微信支付開發者平台申請取得。

二、安裝EasyWeChat
EasyWeChat是一個基於PHP的微信開發工具包,可以簡化與微信公眾號、小程式互動的過程。我們可以使用Composer來安裝EasyWeChat,執行以下指令:

composer require overtrue/wechat

三、設定EasyWeChat
安裝完成後,在你的專案中新建一個檔案config.php,並按以下範例設定EasyWeChat:

<?php

return [
    'payment' => [
        'sandbox'    => false,
        'app_id'     => 'YOUR_APPID',
        'mch_id'     => 'YOUR_MCHID',
        'key'        => 'YOUR_KEY',
        'cert_path'  => 'CERT_PATH',
        'key_path'   => 'KEY_PATH',
    ],
];

將YOUR_APPID、YOUR_MCHID、YOUR_KEY替換為你的實際值。 CERT_PATH和KEY_PATH是你憑證檔案的路徑。

四、實作支付功能
使用EasyWeChat幫我們封裝好的微信小程式支付類,可以輕鬆實現支付功能。可以透過以下步驟進行實現。

  1. 接收付款請求
    在你的小程式中,使用者點擊付款按鈕後,將會向伺服器發送付款請求。你需要編寫一個接收支付請求的接口,將這個接口的URL配置到小程式的後台。
  2. 處理支付請求
    在接收到支付請求後,我們可以使用以下程式碼處理支付請求,並傳回給小程式一個預付訊息,供小程式呼叫微信支付介面發起支付:

    <?php
    require 'vendor/autoload.php';
    $config = require 'config.php';
    
    use EasyWeChatFactory;
    
    $options = [
     // ...
    ];
    
    $app = Factory::miniProgram($options);
    
    $response = $app->payment->prepare([
     'openid' => 'USER_OPENID',
     'out_trade_no' => 'YOUR_ORDER_ID',
     'total_fee' => 'ORDER_TOTAL_FEE',
     'body' => 'PAYMENT_DESCRIPTION',
     'spbill_create_ip' => $_SERVER['REMOTE_ADDR'],
     // ... 可选参数
    ]);
    
    if ($response->return_code === 'SUCCESS' && $response->result_code === 'SUCCESS') {
     // 返回预支付信息给小程序
     echo json_encode($app->payment->configForPayment($response->prepay_id));
    }

    將USER_OPENID、YOUR_ORDER_ID、ORDER_TOTAL_FEE和PAYMENT_DESCRIPTION替換為實際值。

  3. 處理支付回呼
    在使用者完成付款後,微信會非同步回呼我們的伺服器,我們需要編寫一個介面來處理付款成功的回調,並進行對應的業務處理。下面是範例程式碼:

    <?php
    use EasyWeChatPaymentNotify;
    
    $options = [
     // ...
    ];
    
    $app = Factory::miniProgram($options);
    
    $payment = $app->payment;
    $notice = $payment->notify();
    
    $notice->setAttr('sub_appid', 'SUB_APPID');
    
    $notice->handle(function ($notify, $successful) {
     // 处理支付成功的业务逻辑
     $outTradeNo = $notify->out_trade_no;
     // ...
    
     return true; // 返回 true 表示已处理完成,不会再异步通知
    });
    
    $response = $notice->reply();
    
    $response->send();

    將SUB_APPID替換為你的小程式的App ID。

至此,我們已經完成了微信小程式支付功能的開發。透過EasyWeChat的封裝,我們可以很方便地實現支付功能,大大簡化了開發的過程。希望這篇文章對於正在開發微信小程式支付功能的你有幫助。

以上是PHP與EasyWeChat: 微信小程式支付功能的開發實戰的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn