Heim >php教程 >php手册 >thinkphp对接ping++支付

thinkphp对接ping++支付

WBOY
WBOYOriginal
2016-06-07 11:35:381805Durchsuche

代码演示对接ping++支付接口的类库;
首先现在官方phpsdk
https://github.com/PingPlusPlus/pingpp-php
然后把解压代码放到框架的目录的Vendor目录中或者系统类库都可以
控制器调用即可看我的代码,继承的基类根据自己情况改下
这些实现服务端生成凭证class PingpayAction extends WeixinbaseAction {<br>     /**<br>     +----------------------------------------------------------<br>     * 初始化<br>     +----------------------------------------------------------<br>     */<br>     function _initialize(){<br>         parent::_initialize();<br>         //$this->check_auth();<br>         $this->seo('支付中心');<br>         vendor( "Pay.init");<br>     }<br> <br>     public function index(){<br>         $input_data = json_decode(file_get_contents('php://input'), true);<br>         if (empty($input_data['channel']) || empty($input_data['amount'])) {<br>             echo 'channel or amount is empty';<br>             exit();<br>         }<br>         $channel = strtolower($input_data['channel']);<br>         $amount = $input_data['amount'];<br>         $orderNo = substr(md5(time()), 0, 12);<br> <br>         //$extra 在使用某些渠道的时候,需要填入相应的参数,其它渠道则是 array() .具体见以下代码或者官网中的文档。其他渠道时可以传空值也可以不传。<br>         $extra = array();<br>         switch ($channel) {<br>             case 'alipay_wap':<br>                 $extra = array(<br>                     'success_url' => 'http://www.yourdomain.com/success',<br>                     'cancel_url' => 'http://www.yourdomain.com/cancel'<br>                 );<br>                 break;<br>             case 'alipay_pc_direct':<br>                 $extra = array(<br>                     'success_url' => 'http://www.yourdomain.com/success'<br>                 );<br>                 break;<br>             case 'upmp_wap':<br>                 $extra = array(<br>                     'result_url' => 'http://www.yourdomain.com/result?code='<br>                 );<br>                 break;<br>             case 'bfb_wap':<br>                 $extra = array(<br>                     'result_url' => 'http://www.yourdomain.com/result?code=',<br>                     'bfb_login' => true<br>                 );<br>                 break;<br>             case 'upacp_wap':<br>                 $extra = array(<br>                     'result_url' => 'http://www.yourdomain.com/result'<br>                 );<br>                 break;<br>             case 'upacp_pc':<br>                 $extra = array(<br>                     'result_url' => 'http://www.yourdomain.com/result'<br>                 );<br>                 break;<br>             case 'wx_pub':<br>                 $extra = array(<br>                     'open_id' => 'Openid'<br>                 );<br>                 break;<br>             case 'wx_pub_qr':<br>                 $extra = array(<br>                     'product_id' => 'Productid'<br>                 );<br>                 break;<br>             case 'yeepay_wap':<br>                 $extra = array(<br>                     'product_category' => '1',<br>                     'identity_id'=> 'your identity_id',<br>                     'identity_type' => 1,<br>                     'terminal_type' => 1,<br>                     'terminal_id'=>'your terminal_id',<br>                     'user_ua'=>'your user_ua',<br>                     'result_url'=>'http://www.yourdomain.com/result'<br>                 );<br>                 break;<br>             case 'jdpay_wap':<br>                 $extra = array(<br>                     'success_url' => 'http://www.yourdomain.com',<br>                     'fail_url'=> 'http://www.yourdomain.com',<br>                     'token' => 'dsafadsfasdfadsjuyhfnhujkijunhaf'<br>                 );<br>                 break;<br>         }<br> <br>         \Pingpp\Pingpp::setApiKey('sk_test_ibbTe5jLGCi5rzfH4OqPW9KC');<br>         try {<br>             $ch = \Pingpp\Charge::create(<br>                 array(<br>                     'subject'   => 'Your Subject',<br>                     'body'      => 'Your Body',<br>                     'amount'    => $amount,<br>                     'order_no'  => $orderNo,<br>                     'currency'  => 'cny',<br>                     'extra'     => $extra,<br>                     'channel'   => $channel,<br>                     'client_ip' => $_SERVER['REMOTE_ADDR'],<br>                     'app'       => array('id' => 'app_1Gqj58ynP0mHeX1q')<br>                 )<br>             );<br>             echo $ch;<br>         } catch (\Pingpp\Error\Base $e) {<br>             header('Status: ' . $e->getHttpStatus());<br>             echo($e->getHttpBody());<br>         }<br> <br>     }<br> }然后视图文件中实例 里面的post地址要改你的网址nbsp;html><br> <br> <br>     <meta> <br>     <meta>           content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/><br>     <title>测试</title> <br>     <link> <br> <br> <br> <header><br>     <div> <br>         <span></span><br>     </div> <br> </header><br> <section><br>     <div> <br>         <div> <br>             <span><img alt="thinkphp对接ping++支付" ></span><br>             <label><br>                 <input><br>             </label><br> <br>             <div> <br>                 <span>银联 pc</span><br>                 <span>支付宝 pc</span><br>             </div> <br>         </div> <br>     </div> <br> </section><br> <script></script><br> <script><br /> function wap_pay(channel) {<br /> var amount = document.getElementById(&#039;amount&#039;).value * 100;<br /> <br /> var xhr = new XMLHttpRequest();<br /> xhr.open("POST", "http://www.xxx.com/Pingpay/index", true);<br /> xhr.setRequestHeader("Content-type", "application/json");<br /> xhr.send(JSON.stringify({<br /> channel: channel,<br /> amount: amount<br /> }));<br /> <br /> xhr.onreadystatechange = function () {<br /> if (xhr.readyState == 4 && xhr.status == 200) {<br /> console.log(xhr.responseText);<br /> pingppPc.createPayment(xhr.responseText, function(result, err) {<br /> console.log(result);<br /> console.log(err);<br /> });<br /> }<br /> }<br /> }<br /> </script><br> <br> 剩下的需要到官方申请正式接口拿到key就可以支付了

AD:真正免费,域名+虚机+企业邮箱=0元

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn