This article mainly shares with you the PHP implementation of the app to evoke Alipay payment code, hoping to help everyone.
// 获取 支付宝app 支付字符串 public function alipay_params_data(){ $data = $this->ApiData();//获取数据 if(!$data['out_trade_no']){ systemmess('0','参数错误'); } $out_trade_no = $data['out_trade_no']; $_biz_data = array(); $_biz_data['body'] = $oid_body; $_biz_data['subject'] = $subject; $_biz_data['out_trade_no'] = $out_trade_no; $_biz_data['timeout_express'] = "30m"; $_biz_data['total_amount'] = $price; //$_biz_data['total_amount'] = '0.01'; $_biz_data['product_code'] = 'QUICK_MSECURITY_PAY'; $_biz_data['passback_params'] = $_type; /* $bizcontent = "{\"body\":\"".$order_info['data']['oid_body']."\"," . "\"subject\": \"".$order_info['data']['oid_title']."\"," . "\"out_trade_no\": \"".$order_info['data']['oid']."\"," . "\"timeout_express\": \"30m\"," . "\"total_amount\": \"".$order_info['data']['oid_price']."\"," . "\"product_code\":\"QUICK_MSECURITY_PAY\"," . "\"passback_params\":\"".$_type."\"" . "}"; */ $bizcontent = json_encode($_biz_data); $alipay_config = C('ALIPAY_CONFIG'); //异步通知地址 $return_url = 'http://'.$_SERVER['HTTP_HOST'].''.U('Appreturn/notify_alipay'); //配置信息 Vendor('alipay-appsdk.aop.AopClient'); Vendor('alipay-appsdk.aop.request.AlipayTradeAppPayRequest'); $aop = new \AopClient(); $aop->gatewayUrl = "https://openapi.alipay.com/gateway.do"; $aop->appId = $alipay_config['app_id']; $aop->rsaPrivateKey = $alipay_config['merchant_private_key']; $aop->format = "json"; $aop->charset = "UTF-8"; $aop->signType = "RSA"; $aop->alipayrsaPublicKey = $alipay_config['alipay_public_key']; //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay $request = new \AlipayTradeAppPayRequest(); //SDK已经封装掉了公共参数,这里只需要传入业务参数 $request->setNotifyUrl($return_url); $request->setBizContent($bizcontent); //这里和普通的接口调用不同,使用的是sdkExecute $response = $aop->sdkExecute($request); //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)); }
Related recommendations:
PHP background signature implementation method for Alipay payment
Instance sharing of Laravel using Alipay payment
Summary of PHP’s Alipay payment interface
The above is the detailed content of PHP implements app to evoke Alipay payment code. For more information, please follow other related articles on the PHP Chinese website!

TomakePHPapplicationsfaster,followthesesteps:1)UseOpcodeCachinglikeOPcachetostoreprecompiledscriptbytecode.2)MinimizeDatabaseQueriesbyusingquerycachingandefficientindexing.3)LeveragePHP7 Featuresforbettercodeefficiency.4)ImplementCachingStrategiessuc

ToimprovePHPapplicationspeed,followthesesteps:1)EnableopcodecachingwithAPCutoreducescriptexecutiontime.2)ImplementdatabasequerycachingusingPDOtominimizedatabasehits.3)UseHTTP/2tomultiplexrequestsandreduceconnectionoverhead.4)Limitsessionusagebyclosin

Dependency injection (DI) significantly improves the testability of PHP code by explicitly transitive dependencies. 1) DI decoupling classes and specific implementations make testing and maintenance more flexible. 2) Among the three types, the constructor injects explicit expression dependencies to keep the state consistent. 3) Use DI containers to manage complex dependencies to improve code quality and development efficiency.

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi

PHPisusedforsendingemailsduetoitsbuilt-inmail()functionandsupportivelibrarieslikePHPMailerandSwiftMailer.1)Usethemail()functionforbasicemails,butithaslimitations.2)EmployPHPMailerforadvancedfeatureslikeHTMLemailsandattachments.3)Improvedeliverability

PHP performance bottlenecks can be solved through the following steps: 1) Use Xdebug or Blackfire for performance analysis to find out the problem; 2) Optimize database queries and use caches, such as APCu; 3) Use efficient functions such as array_filter to optimize array operations; 4) Configure OPcache for bytecode cache; 5) Optimize the front-end, such as reducing HTTP requests and optimizing pictures; 6) Continuously monitor and optimize performance. Through these methods, the performance of PHP applications can be significantly improved.

DependencyInjection(DI)inPHPisadesignpatternthatmanagesandreducesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itallowspassingdependencieslikedatabaseconnectionstoclassesasparameters,facilitatingeasiertestingandscalability.

CachingimprovesPHPperformancebystoringresultsofcomputationsorqueriesforquickretrieval,reducingserverloadandenhancingresponsetimes.Effectivestrategiesinclude:1)Opcodecaching,whichstorescompiledPHPscriptsinmemorytoskipcompilation;2)DatacachingusingMemc


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

SublimeText3 Linux new version
SublimeText3 Linux latest version

WebStorm Mac version
Useful JavaScript development tools
