بىلىملەر مۇنبىرى

 پارول قايتۇرىۋېلىش
 تىزىملىتىڭ
جەمئىي مىكروبلوگ 263 تال  

مىكروبلوگ[ يېڭى | 24 سائەت | 7 كۈن | 30 كۈن ]

كۆرۈش: 470|ئىنكاس: 2

[باشقا] سالۇن بەتكە ئاپتۇماتىك پۇل تۇتۇش ئىقتىدارىنى قوشۇش

[ئۇلانما كۆچۈرۈش]

بىكەتكە ئەزا نامىڭىز بىلەن كىرسىڭىز تېخىمۇ كۆپ ئۇچۇرلارنى كۆرەلەيسىز

مۇنبىرىمىزگە تىزىملىتىپ كىرسىڭىز ئاندىن قوشۇمچە ھۆججەتنى كۆرەلەيسىز ياكى چۈشۈرەلەيسىز . تېخى تىزىملاتمىغانمۇ؟ تىزىملىتىڭ

x
ھەممىىزگە مەلۇم،ھازىر كۆپۈنچە ئەپچاقلادا ئاپتۇماتىك پۇل تۇتۇش ئىقتىدارى يامراپ كەتتى،شۇ ئاساستا مەن تۈنگۈن ئولتۇرۇپ سالۇن كىنوخانىسىغا ئاپتۇماتىك پۇل تۇتۇش ئىقتىدارىنى يېزىپ چىقىپ سىلىگە سۇندۇم، تېخىمۇ ئىچكىرلەپ بىلمەكچى بولساڭلار تۆۋەندىكى ئۈندىدارنى قوشۇپ سورىساڭلار بولىدۇ.
ئۈندىدار:ycoder--123
ئەلۋەتتە سىز بۇ ئىقتىدارنى قوشۇش ئۈچۈن سىزنىڭ【委托代扣】ئوچۇق بولىشى كېرەك. ئۇنداق بولسا نەق گەپكە كەلسەك:

1.用户点击函数

  1. public function buy_auto(){

  2.         $appid = '服务商APPID';
  3.         $mchid= '服务商商户号';
  4.         $sub_mchid= '您的商户号';
  5.         $plan_id=""您的模板ID";
  6.         $contract_code = $this->gen_contract_code(); //签约协议号
  7.         $request_serial        =$this->build_order_no(); //请求序列号
  8.         $notify_urls='https://'.$_SERVER['SERVER_NAME'].'/index.php/Home/User/notifyUrl'; //用于接收签约成功消息的回调通知地址
  9.         $key="服务商秘钥"; //服务商秘钥
  10.         $time=time(); //当前时间

  11.         //生成签名
  12.         $stringA="appid=".appid ."&contract_code=".$contract_code."&contract_display_account=微信代扣&mch_id=".$mchid."&notify_url=".$notify_urls."&plan_id=".plan_id."&request_serial=".$request_serial."&sub_mch_id=".plan_id."&timestamp=".$time."&version=1.0";
  13.         $stringSign=$stringA."&key=".$key;
  14.         $sign=strtoupper(md5($stringSign)); //签名
  15.      
  16.         $url="https://api.mch.weixin.qq.com/papay/entrustweb?appid=".$appid."&contract_code=".$contract_code."&contract_display_account=微信代扣&mch_id=".$mchid."&sub_mch_id=".$sub_mchid."&notify_url=".urlencode($notify_urls)."&plan_id=".plan_id."&request_serial=".$request_serial."&timestamp="."$time"."&version=1.0&sign=".$sign; //签约URL拼接
  17.         
  18.          $contract_data=[
  19.             "openid"=>"用户ID",
  20.             "vip_day"=>30,
  21.             "vip_price"=>15.00,
  22.             "contract_code"=>$contract_code,
  23.             "contract_id"=>$contract_code,
  24.             "plan_id"=>$plan_id,
  25.             "create_time"=>$time
  26.         ];
  27.         $model=new ContractModel(); //实例化模型
  28.         $res=$model>where('openid',$openid)->find();
  29.         if(!$res){
  30.              $model>save($contract_data);
  31.         }else{
  32.             $model->where('openid',$openid)->save($contract_data);
  33.         }
  34.         Header("Location:$url");  //跳转签约页面
  35.     }
مەزمۇننى كۆچۈرۈۋېلىش


2.微信通知接受函数

  1. public function notifyUrl(){

  2.         $contractData=file_get_contents("php://input");
  3.         if (!empty($contractData)) {
  4.         
  5.             $obj = simplexml_load_string($contractData, 'SimpleXMLElement', LIBXML_NOCDATA);
  6.             $data = json_decode(json_encode($obj), true);

  7.             $contract_code= $data["contract_code"];
  8.             $plan_id=$data["plan_id"];
  9.             $contract_id = $data["contract_id"];
  10.             $change_type = $data["change_type"];

  11.             $model=new ContractModel(); //实例化模型

  12.             if($change_type == "ADD"){ //如果用户签约了
  13.                 $contract_data=$model>where('contract_code',$contract_code)->find();
  14.                 if($contract_data){
  15.                     $model->where('contract_code',$contract_code'")->save(["change_type"=>$change_type,"contract_id"=>$contract_id]);
  16.                     $appid = '服务商appid';
  17.                     $mch_id = '服务商商户号';
  18.                     $key = '服务商Key';
  19.                     $sub_mch_id = '您的商户号';
  20.                     $out_trade_no = 'ycoder'.date("YmdHis").mt_rand(1111111111,9999999999);
  21.                     $body = "微信代扣";
  22.                     $total_fee = $contractData["vip_price"];
  23.                     $notify_url='https://'.$_SERVER['SERVER_NAME'].'/index.php/Home/User/notifyTwice';
  24.                     $autoPay = $this->WeixinAutoPay($appid,$mch_id,$key,$sub_mch_id,$contract_id,$attach,$out_trade_no,$body,$total_fee,$notify_url);
  25.                
  26.                       log::write($res);
  27.                 }
  28.                
  29.             }elseif ($change_type == "DELETE") {
  30.                  $model>where('contract_code',contract_code)->save(["change_type"=>'DELETE']);
  31.             }
  32.             
  33.             $str='<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>';
  34.             echo $str;
  35.         }
  36.         $str='<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[失败]]></return_msg></xml>';
  37.         echo $str;
  38.     }
مەزمۇننى كۆچۈرۈۋېلىش


3.开始扣费

  1. private function WeixinAutoPay($appid,$mch_id,$key,$sub_mch_id,$contract_id,$out_trade_no,$body,$total_fee,$notify_url) {
  2.     $url = 'https://api.mch.weixin.qq.com/pay/partner/pappayapply';
  3.     $datas= array(
  4.         'appid' => $appid, //服务商APPID
  5.         'mch_id' => $mch_id, //服务商商户号
  6.         'sub_mch_id' => $sub_mch_id, //您的商户号
  7.         'contract_id' => $contract_id, // 签约协议ID
  8.         'nonce_str' => $this->createNoncestr(), //随机字符串
  9.         'body' => $body, //商品描述
  10.         'out_trade_no'=> $out_trade_no, //商户订单号
  11.         'total_fee' => $total_fee, //总金额 单位 分
  12.         'spbill_create_ip' => $_SERVER['REMOTE_ADDR'], //终端IP
  13.         'notify_url' => $this->notify_url, //通知地址
  14.         'trade_type' => 'PAP'//交易类型 (固定值)     
  15.     );
  16.     //统一下单签名
  17.     $datas['sign'] = $this->genrateSign($parameters);
  18.     $xmlData = $this->arrayToXml($parameters);
  19.     $return = $this->xmlToArray($this->postXmlCurl($xmlData, $url, 60));
  20.     return $return;
  21. }
مەزمۇننى كۆچۈرۈۋېلىش

باھالاش

قاتناشقانلار سانى 1تىللا +15 يىغىش سەۋەبى
Bashqut + 15 ئالامەت!

باھا خاتىرىسى

بىلمىگەننى بىلىملەردىن بىل!
koznak app
ۋاقتى: 7 كۈن بۇرۇن | ھەممە قەۋەتنى كۆرۈش
ئىسىل مانا
بىلمىگەننى بىلىملەردىن بىل!
كىرگەندىن كېيىن ئىنكاس يازالايسىز كىرىش | تىزىملىتىڭ

سەھىپە جۇغلانما قائىدىسى

QQ|قاماقخانا|رەسىمسىز ھالەت|يانفۇن| بىلىملەر تورى ( 沪ICP备19027845号-8 )   

GMT+8, 2021-4-11 23:00 , Processed in 0.082703 second(s), 29 queries .

Powered by Discuz! X3.2(NurQut Team)

© 2001-2013 Comsenz Inc.

تېز ئىنكاس چوققىغا قايتىش سەھىپىگە قايتىش