kang/app-pay

app-pay package for thinkphp5.0

dev-master 2019-01-15 06:08 UTC

This package is not auto-updated.

Last update: 2025-06-26 13:57:28 UTC


README

APP 支付

安装

>composer require kang/app-pay

示例

  • 支付宝

     // 测试数据开始
     $subject = "iPhone";
     $total_amount = "5688";
     $out_trade_no = "201612172344562";      // 订单号,不超过64位
     // 测试数据结束
        
     // 业务参数
     $bizContentArr = array(
         "timeout_express"       =>  "30m",      // 30分钟 —— 该笔订单允许的最晚付款时间,逾期将关闭交易。该参数数值不接受小数点
         "product_code"		    =>	"QUICK_MSECURITY_PAY",  // 固定值,销售产品码
         "total_amount"          =>  $total_amount,
         "subject"               =>  $subject,
         "out_trade_no"          =>  $out_trade_no,
     );
        
     // 公共参数
     $data = array(
         "charset"               =>  "UTF-8",
         "timestamp"             =>  date("Y-m-d H:i:s",time()),
         "biz_content"           =>  $bizContentArr
     );
        
     $alipay = new \kang\appPay\alipay\Alipay();
     $sign = $alipay->request($data);
     echo $sign;
    
  • 微信

     // 测试数据开始,由客户端传递
     $body = "iPhone";
     $out_trade_no = "201609241165665169";
     $total_fee = "15";
     $spbill_create_ip = "115.28.95.67";
     // 测试数据结束
        
     $data = array(
         "body"              =>  $body,
         "out_trade_no"      =>  $out_trade_no,
         "total_fee"         =>  $total_fee,
         "spbill_create_ip"  =>  $spbill_create_ip
     );
        
     // 实例化签名类
     $pay = new \kang\appPay\wepay\WePay();
     $response = $pay->request($data);
        
     // 解析XML数据
     $xml = new \kang\appPay\wepay\XmlTransfer();
     $response = $xml->xml2Array($response);
        
     if (!empty($response))
     {
         if ("FAIL" == $response["return_code"])
         {
             $ret = array(
                 'status'		=>	'FAIL',
                 'msg'	        =>	$response["return_msg"]
             );
             echo json_encode($ret);
         }
         else
         {
             if ("SUCCESS" == $response["result_code"]) {
             	$resign = array(
     	            "appid"         =>  $response["appid"],
     	            "partnerid"     =>  $response["mch_id"],
     	            "prepayid"      =>  $response["prepay_id"],
     	            "noncestr"      =>  $response["nonce_str"],
     	            "timestamp"     =>  time(),
     	            "package"       =>  "Sign=WXPay"
     	        );
     	        $encpt = new \kang\appPay\wepay\WeEncryption();
     	        $sign = $encpt->signature($resign);
     	        $resign["sign"] = $sign;
     	        echo json_encode($resign);
             }
             else
             {
             	$ret = array(
                     'status'		=>	'FAIL',
                     'msg'	        =>	$response["err_code_des"]
                 );
             	echo json_encode($ret);
             }
         }
     }