php实现支付宝app支付

一、准备工作

  1. 申请appid,生成密钥,生成密钥查看https://openclub.alipay.com/club/history/read/1833
  2. 下载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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值