이 글의 내용은 WeChat 코드 스캐닝 결제 API(국내 결제)를 통합한 PHP 프로젝트에 대한 내용입니다. 이제 필요한 친구들이 참고할 수 있도록 공유하겠습니다.
1. WeChat 코드 스캐닝 결제 프로세스
1. 기업용 공개 계정 신청(개인 구독 계정은 결제 기능을 활성화할 수 없음), 등록 채널: WeChat 공개 플랫폼 등록
2. 신청 채널은 신청이 성공한 WeChat 공개 플랫폼에 있습니다. Medium
3. WeChat 판매자 플랫폼에 로그인하고 제품 센터->내 제품->결제하려면 QR 코드 스캔을 클릭하세요. 비용을 지불하고 활성화를 신청한 후 일련의 정보 입력과 다음 단계를 따르세요.
4 스캔 코드 결제 상품 신청이 성공한 후 위챗 가맹점 플랫폼에서도 상품 센터 -> 개발 구성을 찾아 API 키를 구성하고 32자리 비밀번호를 생성하는 도구를 찾아 생성합니다. 키를 입력하고 저장합니다.
5. 상품센터->APPID 인증관리를 찾아 인증주소에 내 도메인 이름을 추가해주세요.
이제 기본 작업은 완료되었습니다.
2. WeChat 결제에 필요한 구성 정보 및 파일 가져오기
1. 구성 정보 가져오기
(1) APPID: WeChat 공식 계정의 애플리케이션 ID로, 위챗 공식 계정.
(2) APPSECRET: 위챗 공식 계정 키, 32자리 비밀번호, 위챗 공식 계정에서 찾으세요.
(3) MCHID: 판매자 번호, WeChat 판매자 플랫폼의 계정 센터->개인 정보에서 확인하세요.
(4) 키: API 키는 WeChat 판매자 플랫폼의 계정 센터->API 보안에서 확인하세요.
2. WeChat 결제 보안 인증서 다운로드
WeChat 판매자 플랫폼에서 "계정 센터->계정 설정->API 보안->인증서 다운로드"를 찾아 인증서를 다운로드하고 로컬 파일에 저장하세요.
3. 실제 애플리케이션 작동(ThinkPHP3.2)
1. WeChat 스캔 코드 결제 PHP 버전 데모 다운로드, 다운로드 채널: WeChat 스캔 코드 결제 데모
2. 폴더에 있는 인증서 파일의 설치 인증서를 압축을 풀고 이전에 로컬에 저장한 보안 인증서로 교체합니다.
3. /lib/WxPay.Config.php를 찾아 파일을 열고 다음과 같이 구성 매개변수를 이전에 얻은 매개변수로 바꿉니다. 4. 수정된 전체 데모 파일을 ThinkPHP 프로젝트의 Vendor로 잘라냅니다. 구체적인 주소는 다음과 같습니다: /ThinkPHP/Library/Vendor/, 컨트롤러에서
5. 실제 애플리케이션 코드에서 컨트롤러는 홈 모듈 아래의 Pay 컨트롤러입니다.
(1) WeChat 결제 링크 생성 및 결제 페이지 코드 로드:
public function wxpay() { // 设置时区 ini_set('date.timezone','Asia/Shanghai'); error_reporting(E_ERROR); // 引入支付核心文件 vendor('wxpay.lib.WxPay#Api'); vendor('wxpay.example.WxPay#NativePay'); vendor('wxpay.example.log'); //获取数据 $title = $_POST['title']; $description = $_POST['description']; $order_no = $_POST['order_no']; $total = $_POST['total']; // 组装支付参数数据 $input = new \WxPayUnifiedOrder(); $input->SetBody($title); $input->SetAttach($description); $input->SetOut_trade_no($orderno); $input->SetTotal_fee($total); $input->SetTime_start(date("YmdHis")); $input->SetTime_expire(date("YmdHis", time() + 600)); $input->SetGoods_tag("test"); // 设置微信扫码支付成功后的回调地址 $input->SetNotify_url("http://www.XXXXXX.com/Home/pay/wx_notify"); $input->SetTrade_type("NATIVE"); $input->SetProduct_id("123"); // 生成支付链接 $notify = new \NativePay(); $result = $notify->GetPayUrl($input); $url = $result["code_url"]; $this->assign("url",base64_encode($url)); // 加载二维码生成页面 $this->display("test/wxpay"); }
<p class="block" style="text-align: center;"> <img src="{:U('Home/pay/qrcode',array('url'=>$url))}" alt="微信支付二维码" /> <p style="text-align: center;color: #4a8bc2;font-size: 20px;">请打开微信,扫描上方二维码完成支付</p> </p>
// 生成微信支付二维码 public function qrcode(){ error_reporting(E_ERROR); vendor('wxpay.example.phpqrcode.phpqrcode'); $url = base64_decode($_GET["url"]); //二维码内容 $errorCorrectionLevel = 'H'; //容错级别 $matrixPointSize = 10; //生成图片大小 \QRcode::png($url,false,$errorCorrectionLevel, $matrixPointSize,3); }
(4) 스캔 코드 결제 콜백 기능 // 微信回调
public function wx_notify(){
ini_set('date.timezone','Asia/Shanghai');
error_reporting(E_ERROR);
vendor('wxpay.example.notify');
$notify = new \PayNotifyCallBack();
$notify->Handle(false);
$is_success = $notify->IsSuccess();
$bdata = $is_success['data']; //获取微信回调数据
if($is_success['code'] == 1){
//验证成功,获取数据
$total_fee=$bdata['total_fee']/100; //支付金额
$trade_no=$bdata['transaction_id']; //微信订单号
$out_trade_no=$bdata['out_trade_no']; //系统订单号
$openid=$bdata['openid']; //用户在商户appid下的唯一标识
// 其他coding ……
}
}
위챗 스캔코드 결제 페이지는 직접 작성하기 때문에 결제 성공 여부를 판단하려면 js도 작성해야 합니다. QR코드 페이지를 통해 결제 성공 여부를 확인할 수 있습니다. 일반적인 아이디어는 다음과 같습니다:页面中写一个定时执行的js函数,每隔1秒钟监测一下当前支付订单的状态,如果订单状态变为已支付,则马上回馈用户支付状态,并跳转到支付成功状态页。
Alipay 스캔 코드 결제 개발 문서;
관련 권장 사항:
퍼지 쿼리를 구현하는 PHP 또는 PHP 프로젝트
위 내용은 PHP 프로젝트는 WeChat 코드 스캐닝 결제 API(국내 결제)를 통합합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!