当前位置:Gxlcms > PHP教程 > PHP实现app唤起支付宝支付代码

PHP实现app唤起支付宝支付代码

时间:2021-07-01 10:21:17 帮助过:80人阅读

本文主要和大家分享PHP实现app唤起支付宝支付代码,希望能帮助到大家。

  1. // 获取 支付宝app 支付字符串
  2. public function alipay_params_data(){
  3. $data = $this->ApiData();//获取数据
  4. if(!$data['out_trade_no']){
  5. systemmess('0','参数错误');
  6. }
  7. $out_trade_no = $data['out_trade_no'];
  8. $_biz_data = array();
  9. $_biz_data['body'] = $oid_body;
  10. $_biz_data['subject'] = $subject;
  11. $_biz_data['out_trade_no'] = $out_trade_no;
  12. $_biz_data['timeout_express'] = "30m";
  13. $_biz_data['total_amount'] = $price;
  14. //$_biz_data['total_amount'] = '0.01';
  15. $_biz_data['product_code'] = 'QUICK_MSECURITY_PAY';
  16. $_biz_data['passback_params'] = $_type;
  17. /*
  18. $bizcontent = "{\"body\":\"".$order_info['data']['oid_body']."\","
  19. . "\"subject\": \"".$order_info['data']['oid_title']."\","
  20. . "\"out_trade_no\": \"".$order_info['data']['oid']."\","
  21. . "\"timeout_express\": \"30m\","
  22. . "\"total_amount\": \"".$order_info['data']['oid_price']."\","
  23. . "\"product_code\":\"QUICK_MSECURITY_PAY\","
  24. . "\"passback_params\":\"".$_type."\""
  25. . "}";
  26. */
  27. $bizcontent = json_encode($_biz_data);
  28. $alipay_config = C('ALIPAY_CONFIG');
  29. //异步通知地址
  30. $return_url = 'http://'.$_SERVER['HTTP_HOST'].''.U('Appreturn/notify_alipay');
  31. //配置信息
  32. Vendor('alipay-appsdk.aop.AopClient');
  33. Vendor('alipay-appsdk.aop.request.AlipayTradeAppPayRequest');
  34. $aop = new \AopClient();
  35. $aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";
  36. $aop->appId = $alipay_config['app_id'];
  37. $aop->rsaPrivateKey = $alipay_config['merchant_private_key'];
  38. $aop->format = "json";
  39. $aop->charset = "UTF-8";
  40. $aop->signType = "RSA";
  41. $aop->alipayrsaPublicKey = $alipay_config['alipay_public_key'];
  42. //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
  43. $request = new \AlipayTradeAppPayRequest();
  44. //SDK已经封装掉了公共参数,这里只需要传入业务参数
  45. $request->setNotifyUrl($return_url);
  46. $request->setBizContent($bizcontent);
  47. //这里和普通的接口调用不同,使用的是sdkExecute
  48. $response = $aop->sdkExecute($request);
  49. //htmlspecialchars是为了
输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题 // echo ;//就是orderString 可以直接给客户端请求,无需再做处理。 // json_echo(1,"ok",array('text'=>htmlspecialchars($response)));exit; $json['msg'] ='1'; $json['state'] ='1'; $json['text'] =$response; $json['return_url'] =$return_url; // $json['alipay_config'] =$alipay_config; // $json['aop'] =$request; echo json_encode($json);exit; //json_echo(1,"ok",array('text'=>$response,'return_url'=>$return_url));exit; } //异步通知地址 public function notify_alipay(){ $alipay_config = C('ALIPAY_CONFIG'); $_post_data = $_POST; $_sign_type = $_post_data['sign_type']; $_sign = $_post_data['sign']; S('zfbpost'.time(),$_POST); M('log')->add(array('title'=>'支付宝','content'=>json_encode($_POST))); // unset($_get_data['sign']); // unset($_get_data['sign_type']); Vendor('alipay-appsdk.aop.AopClient'); $aop = new \AopClient(); $aop->alipayrsaPublicKey = $alipay_config['alipay_public_key']; //$result = $aop->rsaCheckV1($_post_data, NULL, "RSA2"); //$result = $aop->rsaCheckV1($_post_data, NULL, "RSA"); $result = $aop->rsaCheckV1($_post_data, NULL, "RSA"); // $result = true; if($result){ //print_r($_post_data); $_type = $_post_data['passback_params']; //商户订单号 $out_trade_no = $_post_data['out_trade_no']; //支付宝交易号 $trade_no = $_post_data['trade_no']; //交易状态 $trade_status = $_post_data['trade_status']; //已下修改订单信息 /* if($_post_data['trade_status'] == 'TRADE_FINISHED'){ $this->edit_order_info($_type,$out_trade_no,$_post_data['trade_no'],$_post_data['gmt_payment'],$_post_data['total_amount'],'alipay',$_post_data); //注意: //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知 }elseif($_post_data['trade_status'] == 'TRADE_SUCCESS'){ $this->edit_order_info($_type,$out_trade_no,$_post_data['trade_no'],$_post_data['gmt_payment'],$_post_data['total_amount'],'alipay',$_post_data); //注意: //付款完成后,支付宝系统发送该交易状态通知 } */ //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— echo "success"; //请不要修改或删除 }else{ // 验证失败 echo "fail".json_encode($result); //请不要修改或删除 } // F('APP_ALIPAY_POST_'.$_POST['passback_params'].'_'.time(),array($_post_data,$result)); }

相关推荐:

支付宝支付之php后台签名实现方法

Laravel使用支付宝支付的实例分享

PHP的支付宝支付接口总结

以上就是PHP实现app唤起支付宝支付代码的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行