English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 알리巴巴 즉시 입금 기능 연결

먼저 알ipay 쪽에서 즉시 입금 인터페이스 계정을 신청해 주세요. 관련 자료를 제출하여 신청해야 합니다. 그런 다음 즉시 입금 API 문서를 참조하여 연결합니다. API 문서는 여러 언어 버전의 demo를 제공하며, 저는 php 버전의 demo를 다운로드한 후 관련 수정 작업을 수행했습니다. demo 버전의 코드를 다시 통합할 수도 있지만, 저는 현재 충전 즉시 입금 프로세스를 통해 코드 재구조화를 수행하지 않을 것입니다.

API文档:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7386797.0.0.eZb8FX&treeId=108&articleId=103950&docType=1

前台表单提交

<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 ="지불 확인">                    
  </div>                                                                                  
 </div>                                                                                  
 </form>

alipay.config.php 설정 파일 설정, 주로 다음 몇 가지 매개변수를 설정합니다

$alipay_config['partner'] 설정 계약 계정 ID
$alipay_config['key'] 설정 MD5키 검증
$alipay_config['notify_url'] 설정 비동기回调地址
$alipay_config['return_url'] 설정回调返回地址
$alipay_config['transport'] 설정 协议类型, 기본적으로 http로 설정됩니다

$alipay_config['partner']        = 'xxxxxxxxxxxx';                                  
//수취 알리지 계정,2088로 시작하는16문자열로 구성된 숫자만으로 구성된 문자열, 일반적으로 수취 계정이 계약 계정입니다                    
$alipay_config['seller_id']   = $alipay_config['partner'];                                
// MD5키, 보안 검사 코드는 숫자와 문자로 구성된32문자열을 확인하려면 주소: https://b.alipay.com/order/pidAndKey.htm          
$alipay_config['key']          = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';                        
// 서버 비동기 알림 페이지 경로는 http: 필요합니다//형식의 전체 경로, 추가할 수 없습니다63;id=123이러한 사용자 정의 파라미터는 외부 네트워크에서 정상적으로 접근할 수 있어야 합니다            
$alipay_config['notify_url'] = "http://xx.xx.xx.xx/pay/notify_url.php";                           
// 페이지 전환 동기 알림 페이지 경로는 http: 필요합니다//형식의 전체 경로, 추가할 수 없습니다63;id=123이러한 사용자 정의 파라미터는 외부 네트워크에서 정상적으로 접근할 수 있어야 합니다           
$alipay_config['return_url'] = "http://xx.xx.xx.xx/pay/return_url.php";                           
//서명 방식                                                         
$alipay_config['sign_type']  = strtoupper('MD5);                                     
//문자编码格式 현재 gbk 또는 utf를 지원합니다-8                                            
$alipay_config['input_charset']= strtolower('utf-8);                                    
//ca 인증서 경로 주소, curl에서 ssl 검증에 사용됩니다                                             
//cacert.pem 파일이 현재 폴더 디렉토리에 있도록 보장하십시오                                          
$alipay_config['cacert']  = getcwd().'\\cacert.pem';                                   
//접근 모드, 서버가 ssl 접근을 지원하는지 확인하여 https를 선택하거나 http를 선택합니다                      
$alipay_config['transport']  = 'http';                                          
// 지불 유형, 수정하지 않아도 됩니다                                                   
$alipay_config['payment_type'] = "1";                                            
// 제품 유형, 수정하지 않아도 됩니다                                                    
$alipay_config['service'] = "create_direct_pay_by_user";

거래 처리가 완료되면 주문 정보 및 거래 상태가 지정된 return_url.php로 전송되며, 주문 상태를 성공 여부로 판단할 수 있습니다. 성공하면 다음 단계 로직(자신의 주문 처리 로직)으로 이동하며, 실패하면 실패로 돌아갑니다

<?php
/* * 
 * 기능: 알리페이 페이지 전환 동기 통지 페이지
 * 버전:3.3
 * 날짜:2012-07-23 
 * 설명:
 * 이 코드는 상점이 테스트하기 위해 제공된 예제 코드입니다. 상점은 자신의 웹사이트의 필요에 따라 기술 문서를 따라 작성할 수 있으며, 이 코드를 사용할 필요는 없습니다
 * 이 코드는 알리페이 인터페이스를 학습하고 연구하기 위해 제공되며, 단순히 참고용입니다
 *************************페이지 기능 설명*************************
 * 이 페이지는 로컬 컴퓨터에서 테스트할 수 있습니다
 * HTML 등 페이지를 장식하는 코드, 상점 비즈니스 로직 코드를 넣을 수 있습니다
 * 이 페이지는 PHP 개발 도구로 디버깅할 수 있으며, logResult 함수를 사용할 수도 있습니다. 이 함수는 기본적으로 꺼져 있으며, alipay_notify_class.php 파일의 verifyReturn 함수를 참조하세요
 require_once("alipay.config.php");
 require_once("lib/alipay_notify.class.php");
 ?>
 
 
   
     
 <?php
 //计算得出通知验证结果
 $alipayNotify = new AlipayNotify($alipay_config);
 $verify_result = $alipayNotify->verifyReturn();
 if($verify_result) {//验证成功
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //请在这里加上商户的业务逻辑程序代码
     //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
   //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
     //商户订单号^M
     $out_trade_no = $_GET['out_trade_no'];
     //支付宝交易号^M
     $trade_no = $_GET['trade_no'];
     //交易状态
     $trade_status = $_GET['trade_status'];
     $total_fee = $_GET['total_fee'];
     //获取用户返回数据
     $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>
         //주문이 상점 웹 사이트에서 이미 처리되었는지 확인합니다.
         //처리를 안 했으면, 주문 번호(out_trade_no)를 사용하여 상점 웹 사이트의 주문 시스템에서 해당 주문의 상세 정보를 찾고 상점의 비즈니스 프로그램을 실행합니다.
         //처리를 이미 했으면, 상점의 비즈니스 프로그램을 실행하지 않습니다.
   }
   else {
    echo "trade_status=".$_GET['trade_status'];
   }
 var_dump($verify_result);
     echo "검증 성공<br />";
     //——예시 코드입니다. 실제 비즈니스 로직에 맞게 프로그램을 작성하십시오——
     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 }
 else {
   //검증 실패
   //디버깅을 위해 alipay_notify.php 페이지의 verifyReturn 함수를 확인하십시오.
   echo "검증 실패";
 }
 ?>
     <title>支付宝 즉시 입금 거래 인터페이스</title>
     </head>
   <body>
   </body>
 </html>

위에 설명한 내용은 저자가 PHP가 알리바이에 즉시 입금 기능을 연결하는 방법에 대해 소개했습니다. 많은 도움이 되길 바랍니다. 어떤 질문이나 의문이 있으면 댓글을 달아 주시면, 저자가 즉시 답변 드리겠습니다. 또한,呐喊 교육 사이트에 대한 지원에 감사드립니다!

성명: 본 내용은 인터넷에서 가져왔으며, 원저자에게 소유권이 있으며, 인터넷 사용자가 자발적으로 기여하고 업로드한 내용입니다. 이 사이트는 소유권을 가지지 않으며, 인공 편집 처리를 하지 않았으며, 관련 법적 책임을 부담하지 않습니다. 저작권 위반 내용이 발견되면, notice#w로 이메일을 보내 주시기 바랍니다.3codebox.com에 대한 신고를 할 때는 #을 @으로 변경하여 이메일을 보내고, 관련 증거를 제공하십시오. 실제로 확인되면, 이 사이트는 즉시 위반된 내용을 삭제합니다.

좋아하는 것