php实现支付宝app支付

mac2024-04-14  33

一、准备工作

申请appid,生成密钥,生成密钥查看https://openclub.alipay.com/club/history/read/1833下载sdk 地址

二、干货

use Alipay\aop\AopClient; use Alipay\aop\request\AlipayTradeAppPayRequest; class AlipayController extends Controller { public function appAlipay($order) { $aop = new AopClient; $aop->gatewayUrl = "https://openapi.alipay.com/gateway.do"; //网关地址要使用沙箱网关alipaydev $aop->appId = "你的appID"; $aop->rsaPrivateKey = '填写你自己的应用私钥'; $aop->format = "JSON"; $aop->postCharset = "utf-8"; $aop->signType = "RSA2"; $aop->alipayrsaPublicKey = '填写你的支付宝公钥'; //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay $request = new AlipayTradeAppPayRequest(); $request->setNotifyUrl("回调地址,要跟开放平台配置相同"); $bizcontent = "{\"body\":\"业务名称\"," . "\"subject\": \"项目名称\"," . "\"out_trade_no\": \"订单号\"," . "\"timeout_express\": \"30m\"," . "\"total_amount\": \"0.01\"," . "\"product_code\":\"QUICK_MSECURITY_PAY\"" . "}"; $request->setBizContent($bizcontent); //这里和普通的接口调用不同,使用的是sdkExecute $response = $aop->sdkExecute($request); //htmlspecialchars是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题 return $response;//就是orderString 可以直接给客户端请求,无需再做处理。 } //异步通知回调 public function notify() { $info = $_REQUEST; $aop = new AopClient; $aop->alipayrsaPublicKey = '填写你的支付宝公钥'; $flag = $aop->rsaCheckV1($info,NULL,"RSA2"); //验签 if(!$flag) { file_get_contents('alipayLog.txt',$info); } else if($info['trade_status']=='TRADE_SUCCESS') //支付状态 { //回调逻辑 } } }

调用appAlipay方法后直接echo,后边不能再执行其他操作

最新回复(0)