ThinkPHP 프레임 워 크 에서 알 리 페 이 결제 기능 도문 튜 토리 얼 통합
배경
1)접속 절차
"빠 른 접속"중의 절차 에 따라 이들 은 대동소이 하 게 모두 진행 된다.
3).제시 설명
비록 공식 문 서 는 이미 매우 상세 하고 성숙 하 게 만 들 었 지만,불필요 한 갈등 을 피하 기 위해 몇 가지 중점 을 두 고 일 깨 워 주어 야 한다.
1).테스트 입구 페이지
아래 그림 에서 보 듯 이 저 는 여기 서 간단 한 입구 파일 을 만 들 었 습 니 다.개발 문서 의 소개 에 따라 인 코딩 형식 을 통일 해 야 합 니 다.여기 서 제 가 선택 한 것 은 UTF-8 입 니 다.
2).html 코드 참조
주의해 야 할 것 은 인터페이스 가 POST 방식 으로 제출 요청 을 해 야 한 다 는 것 을 가리킨다
3).알 리 페 이 설정 정보
알 리 페 이의 설정 정보 에 대해 저 는 application/Common/conf/config.php 에 썼 습 니 다.
//
'ALI_CONFIG' => array(
'gatewayUrl' => 'https://openapi.alipay.com/gateway.do',// ( )'
'appId' => '2017xxxxxxxx9',//APPID
// : ,
'rsaPrivateKey' => 'MIIExxxxxxxxxxxxxxxxxxxxxxxxxxxq',
// , : ,
'alipayrsaPublicKey' => 'IIBxxxxxxxxxxxxxxxxxxxEFAA',
'notifyUrl' => 'http://www.xxx.com/m/cartpay/notify_ali', //
'returnUrl' => 'http://www.xxx.com', //
'returnPcUrl' => 'http://www.xxx.com/Home', // PC
),
4).서버 SDK 가 져 오기앞에서 다운로드 한 SDK 를 사용자 정의 위치 에 넣 습 니 다.여기 서 저 는 다음 과 같은 경로 에 습관 이 되 어 있 습 니 다.\ThinkpHP\Library\Vendor\Alipay 는 특히 각 파일 류 의 인용 은 코드 프레임 워 크 에 따라 다 르 므 로 스스로 확인 해 야 합 니 다.
5).결제 인터페이스 구현
알 리 페 이 결 제 를 깨 워 달라 고 요청 하 는 경로 에서 인터페이스 코드 편집
제시 하 다.
코드 구현 은 다음 과 같 습 니 다.
/**
* post
*/
public function alipay(){
if (IS_POST){
Vendor('Alipay.aop.AopClient');
Vendor('Alipay.aop.request.AlipayTradeWapPayRequest');
//$out_trade_no = I('post.order_sn');
/*
* $out_trade_no
* POST ,
* $order_amount
* :3.50,10.00
* $aliConfig
*/
$out_trade_no = '2017M'.time();
$body = ' , ';
$subject = ' ';
$order_amount = 9.00;
$aliConfig = C('ALI_CONFIG');
$aop = new \AopClient();
$aop->gatewayUrl = $aliConfig['gatewayUrl'];
$aop->appId = $aliConfig['appId'];
$aop->rsaPrivateKey = $aliConfig['rsaPrivateKey'];
$aop->alipayrsaPublicKey=$aliConfig['alipayrsaPublicKey'];
$aop->apiVersion = '1.0';
$aop->postCharset='UTF-8';
$aop->format='json';
$aop->signType='RSA2';
$request = new \AlipayTradeWapPayRequest ();
$bizContent = "{" .
" \"body\":\"$body.\"," .
" \"subject\":\"$subject\"," .
" \"out_trade_no\":\"$out_trade_no\"," .
" \"timeout_express\":\"90m\"," .
" \"total_amount\":$order_amount," .
" \"product_code\":\"QUICK_WAP_WAY\"" .
" }";
$request->setBizContent($bizContent);
$request->setNotifyUrl($aliConfig['notifyUrl']);
$request->setReturnUrl($aliConfig['returnUrl']);
$result = $aop->pageExecute ( $request);
echo $result;
}else{
echo 'sorry, ';
}
}
6).지급 완료 후 통지 처리이때 제출 한 post 데 이 터 를 가 져 와 주문 번호 의 박리 를 통 해 다음 단계 의 업무 논리 처 리 를 하면 됩 니 다.
[주의]:
/**
*
*/
public function notify_ali(){
$out_trade_no = I('post.out_trade_no');
$this->toUpdatePayInfo($out_trade_no,'ali');
echo 'success';
}
3.컴퓨터 사이트 결제 인터페이스 실현비교 해 보면 PC 엔 드 의 코드 디자인 은 핸드폰 엔 드 와 대동소이 하 므 로 여기 서사용 상황를 밝 히 면 참고 할 수 있 습 니 다.
1).결제 인터페이스 구현
알림:
테스트 결과 인터페이스 에서'subject'를 정의 할 때 문자 의 수량 에 대한 요구 가 있 고 네 글 자 를 초과 할 수 없 으 며 알파벳 에 특별한 제한 이 없 는 것 같 습 니 다.개발 과정 에서 모든 상품 이름 을 표시 하려 고 했 으 나 실현 되 지 못 했 습 니 다.주의 하 시기 바 랍 니 다.
제 공 된 코드 는 잠시 인터페이스 디자인 을 하지 않 았 습 니 다.핸드폰 엔 드 인터페이스 사상 을 참고 하여 주문 정 보 를 받 고 처리 한 후에 알 리 페 이 를 깨 울 수 있 습 니 다.현재 의 코드 는 공공 파일 설정 이 정확 한 상황 에서 직접 공공 네트워크 에서 인터페이스 링크 를 방문 하면 효 과 를 볼 수 있 습 니 다.
지불 성공 후의 통지 처 리 는 휴대 전화 단말기 의 실현 방식 을 참고 하 시기 바 랍 니 다.
3).코드 는 다음 과 같다.
/**
*
*/
public function aliPayPage(){
$out_trade_no = '2017PC'.time();
$order_amount = '12.88';
$proName = " XXXXXX";
Vendor('Alipay.aop.AopClient');
Vendor('Alipay.aop.request.AlipayTradePagePayRequest');
//
$aop = new \AopClient();
$aliConfig = C('ALI_CONFIG');
$aop->gatewayUrl = $aliConfig['gatewayUrl'];
$aop->appId = $aliConfig['appId'];
$aop->rsaPrivateKey = $aliConfig['rsaPrivateKey'];
$aop->apiVersion = '1.0';
$aop->signType = 'RSA2';
$aop->postCharset= 'utf-8';
$aop->format='json';
$request = new \AlipayTradePagePayRequest ();
$request->setReturnUrl($aliConfig['returnPcUrl']);
$request->setNotifyUrl($aliConfig['notifyUrl']);
$request->setBizContent(
"{" .
" \"product_code\":\"FAST_INSTANT_TRADE_PAY\"," .
" \"subject\":\"$proName\"," .
" \"out_trade_no\":\"$out_trade_no\"," .
" \"total_amount\":$order_amount," .
" \"body\":\"Iphone6 16G\"" .
" }");
//
$result = $aop->pageExecute ($request);
//
echo $result;
}
부록:소스 코드 다운로드>>
thinkpHP 와 관련 된 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,ThinkpHP 입문 강좌,thinkpHP 템 플 릿 조작 기법 요약,ThinkPHP 상용 방법 총화,codeigniter 입문 강좌,CI(CodeIgniter)프레임 워 크 진급 강좌과Zend FrameWork 프레임 워 크 입문 강좌.
본 고 는 ThinkPHP 프레임 워 크 를 기반 으로 한 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ThinkPHP5 일반 데이터 작업1. 데이터베이스는:thinkphp5, 새 데이터 테이블think_test 2.\application\database.php에서 수정 3.\application\index\model 다음에 새 모델 파일 테스트.ph...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.