>  기사  >  php教程  >  thinkphp3.2.3 WeChat 결제_스캔 코드 결제_콜백 포함

thinkphp3.2.3 WeChat 결제_스캔 코드 결제_콜백 포함

WBOY
WBOY원래의
2016-09-23 03:29:583022검색

위챗 결제 예시코드를 tp에서 직접 사용하는 예시코드로 수정하고, 스캔코드 결제 및 콜백 기능만 간단히 만들어 보세요
위챗 결제 샘플코드를 tp에서 직접 사용하는 샘플코드로 수정하고, 간단히 스캔코드 결제 및 콜백 기능을 만들어보세요
모드 2가 사용됩니다. 필요한 경우 모드 1에서 코드를 직접 실행할 수 있습니다.
클래스 가져오기 내 가져오기를 살펴보면 가져오기 방법을 이해할 수 있습니다. 더 이상 이런 일에 대해 걱정할 필요가 없습니다.
코드 참조는 다음과 같습니다
결제 QR 코드 생성 예시 코드: public function index() {<br> 가져오기( "@.Controller.WxPay.WxPayNativePay" );<br>         $notify = 새로운 WxPayNativePay ();<br>         $url1 = $notify->GetPrePayUrl ( "123456789" );<br> ​​​​//모드 2<br>           /**<br>          * 프로세스: <br> * 1. 통합주문 호출, code_url 획득, QR코드 생성 <br> ​​​​​* 2. 사용자는 QR 코드를 스캔하여 결제합니다<br> * 3. 결제가 완료되면 위챗 서버에서 결제가 완료되었음을 알려드립니다<br> * 4. 결제성공 알림에서는 실제 결제성공 여부를 확인하기 위해 주문내역을 확인해야 합니다. (notify.php 참고) <br>                                                                                          * @Time 2016-9-22 오후 3:41:59<br>                        */<br>               // $price = $_POST ['가격'];<br>             // $prodect_id = $_POST ['prodect_id'];<br>              // $premission_name = $_POST ['premission_name'];<br>          $가격 = 0.01;<br>         $product_id = 랜드( 2, 8 );<br>         $premission_name = $prodect_id;<br> ​​​​//처리 시작<br>         $input = 새로운 WxPayUnifiedOrder ();<br>         $input->SetBody ( "xxxx---" . $premission_name );<br>          $input->SetAttach ( "xxxxx-Attach" );<br>         $input->SetOut_trade_no ( WxPayConfig::MCHID . 날짜 ( "YmdHis" ) );<br>          $input->SetTotal_fee ( $price * 100 );<br>         $input->SetTime_start ( 날짜 ( "YmdHis" ) );<br> $input->SetTime_expire ( 날짜 ( "YmdHis", 시간 () + 600 ) );<br>          $input->SetGoods_tag ( "xxx-tag" );<br>          $input->SetNotify_url("http://xxxx.com/wxtest/index.php/home/Index/notify" );<br>          $input->SetTrade_type ( "NATIVE" );<br>         $input->SetProduct_id ( rand ( 4, 8 ) );<br>         $result = $notify->GetPayUrl ( $input );<br>         $url2 = $result ["code_url"];<br> ​​​​//QR코드 생성<br> ​​​​error_reporting (E_ERROR);<br> 가져오기( "@.Controller.WxPay.PHPQRCODE" );<br> $url = URL디코드( $url2 );<br>         QRcode::png ( $url );<br>}WeChat 결제 콜백 처리를 위한 예제 코드: /**<code class="prettyprint linenums lang-php">/**<br>      * @功能描述:微信支付回调处理<br>      * @作者 希尔瓦柯<br>      * @时间 2016-9-22下午3:41:59<br>      */<br>     public function notify() {<br>         // 获取微信回调的数据<br>         $notifiedData = $GLOBALS ['HTTP_RAW_POST_DATA'];<br>         // 加载相关的类<br>         import ( "@.Controller.WxPay.WxPayNativePay" );<br>         import ( "@.Controller.WxPay.WxPayData" );<br>         import ( "@.Controller.WxPay.WxPayNotify" );<br>         import ( "@.Controller.WxPay.PayNotifyCallBack" );<br>         $xml_to_arr = WxPayDataBase::FromXml_4_babbage ( $notifiedData );<br>         // 转成数组 并写入缓存<br>         F ( "wx_notified_data", $xml_to_arr);<br>         // 吧xml原型也写入xml<br>         F ( "wx_notified_data_xml", $notifiedData );<br>         <br>         // 给微信返回支付状态值<br>         $notify = new PayNotifyCallBack ();<br>         // 返回状态<br>         $notify->Handle ( false );<br>     } * @기능 설명: 위챗 결제 콜백 처리
* @작가 실바코

* * @Time 2016-9-22 오후 3:41:59thinkphp3.2.3 WeChat 결제_스캔 코드 결제_콜백 포함 ​​*/ 공개 함수 알림() { ​​​​//WeChat 콜백 데이터 가져오기

$notifiedData = $GLOBALS ['HTTP_RAW_POST_DATA'];

​​​​//관련 클래스 로드 가져오기( "@.Controller.WxPay.WxPayData" );

가져오기( "@.Controller.WxPay.WxPayNotify" );

가져오기( "@.Controller.WxPay.PayNotifyCallBack" );         $xml_to_arr = WxPayDataBase::FromXml_4_babbage ( $notifiedData ); ​​​​//배열로 변환하고 캐시에 쓰기 ​​​​F("wx_notified_data", $xml_to_arr);              // xml 프로토타입도 xml에 작성해 보겠습니다 F( "wx_notified_data_xml", $notifiedData );                                               ​​​​//결제 상태 값을 WeChat으로 반환         $notify = 새로운 PayNotifyCallBack (); ​​​​//반품 상태          $notify->처리( false );                                   저처럼 실력이 부족한 동료들에게 도움이 되었으면 좋겠습니다 wxpay4tp.zip ( 1.25MB 다운로드: 8회 )
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.