>  기사  >  백엔드 개발  >  PHP에서 WeChat 결제 시작 및 쿼리 구현

PHP에서 WeChat 결제 시작 및 쿼리 구현

WBOY
WBOY원래의
2023-05-13 22:31:341227검색

WeChat 결제가 인기를 끌면서 점점 더 많은 웹사이트에서 WeChat 결제 기능을 통합해야 합니다. 이 기사에서는 WeChat 결제 개시 및 쿼리를 PHP로 구현하는 방법에 대해 설명합니다.

  1. 통합 주문 API 호출

PHP에서 WeChat 결제를 시작하려면 첫 번째 단계는 WeChat 결제의 통합 주문 API를 호출하여 선불 주문을 생성하는 것입니다. API는 판매자 ID, 결제 금액, 주문 번호, 콜백 URL 등을 포함한 몇 가지 필수 매개변수를 전달해야 합니다. 다음은 샘플 코드입니다.

<?php
  require_once('WxPayApi.php');
  require_once('WxPayUnifiedOrder.php');
  
  $order = new WxPayUnifiedOrder();
  $order->SetBody('商品描述');
  $order->SetOut_trade_no('订单号');
  $order->SetTotal_fee('支付金额');
  $order->SetNotify_url('回调URL');
  $order->SetTrade_type('JSAPI');
  $order->SetOpenid('用户OpenID');
  
  $result = WxPayApi::unifiedOrder($order);
  1. 선불 주문 정보 가져오기

통합 주문 API를 호출한 후 선불 거래 세션 ID(prepay_id) 및 기타 필수 매개변수를 포함한 선불 주문 정보를 가져와야 합니다. 다음은 샘플 코드입니다.

<?php
  require_once('WxPayApi.php');
  require_once('WxPayData.php');
  
  $input = new WxPayData();
  $input->SetBody('商品描述');
  $input->SetOut_trade_no('订单号');
  $input->SetTotal_fee('支付金额');
  $input->SetNotify_url('回调URL');
  $input->SetTrade_type('JSAPI');
  $input->SetOpenid('用户OpenID');
  
  $result = WxPayApi::unifiedOrder($input);
  $prepay_id = $result['prepay_id'];
  $params = [
    'appId' => $result['appid'],
    'timeStamp' => time(),
    'nonceStr' => $result['nonce_str'],
    'package' => "prepay_id={$prepay_id}",
    'signType' => 'MD5'
  ];
  $params['paySign'] = WxPayApi::getSign($params);
  1. 결제 페이지로 이동

선불 주문 정보를 얻은 후, 얻은 매개변수를 프런트 엔드에 전달하여 사용자가 WeChat 클라이언트에서 결제를 시작할 수 있도록 할 수 있습니다. 다음은 샘플 코드입니다.

<?php
  echo '<script language="javascript">';
  echo 'WeixinJSBridge.invoke("getBrandWCPayRequest", {
    "appId":"'.$params['appId'].'",
    "timeStamp":"'.$params['timeStamp'].'",
    "nonceStr":"'.$params['nonceStr'].'",
    "package":"'.$params['package'].'",
    "signType":"'.$params['signType'].'",
    "paySign":"'.$params['paySign'].'"
  }, function(res){
    if(res.err_msg == "get_brand_wcpay_request:ok" ){
      alert("支付成功");
    }else{
      alert("支付失败");
    }
  });';
  echo '</script>';
  1. 결제 결과 조회

결제가 완료된 후 거래가 성공적으로 완료되었는지 확인하기 위해 결제 결과를 조회해야 합니다. 다음은 샘플 코드입니다.

<?php
  require_once('WxPayApi.php');
  
  $input = new WxPayOrderQuery();
  $input->SetOut_trade_no('订单号');
  
  $result = WxpayApi::orderQuery($input);
  if ($result['trade_state'] == 'SUCCESS') {
    echo '支付成功';
  } else {
    echo '支付失败';
  }

요약:

위는 PHP에서 WeChat 결제를 시작하고 쿼리하는 전체 과정입니다. 웹사이트에 WeChat 결제를 통합해야 하는 경우 위의 단계를 따를 수 있습니다. 개발 시에는 공식적으로 제공되는 SDK를 사용하는 것이 좋습니다. 이는 많은 시간과 에너지를 절약할 수 있습니다.

위 내용은 PHP에서 WeChat 결제 시작 및 쿼리 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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