Tp5支付宝转账接口开发

tp对接支付宝转账提现

第一步 下载demo

https://opendocs.alipay.com/common/02nk10?pathHash=a7475006

进入支付宝开放平台,文档中心》APP支付》下载SDK&Demo,放到tp框架的Vendor中

在这里插入图片描述
1.支付宝提现 需要用到公钥证书,涉及到提现的公钥证书是必须要的
2. 公钥证书定义为项目根路径
3. 上代码

use Alipay\aop\AopClient;
use Alipay\aop\AlipayConfig;
use Alipay\aop\AopCertClient;
use Alipay\aop\request\AlipayFundTransUniTransferRequest;
use Alipay\aop\request\AlipayFundTransToaccountTransferRequest;

class Pay extends Base
{
      //支付宝转账提现到个人支付宝
    public function alitransfer($id=1,$price = 1)
    {
        $find = db('pay_account')->where('id',$id)->find();
        $aop = new AopCertClient();
        $appCertPath = "/foo/appCertPublicKey_2021002125630535.crt";//应用证书路径(要确保证书文件可读),例如:/home/admin/cert/appCertPublicKey.crt
        $alipayCertPath = "/foo/alipayCertPublicKey_RSA2.crt";//支付宝公钥证书路径(要确保证书文件可读),例如:/home/admin/cert/alipayCertPublicKey_RSA2.crt
        $rootCertPath = "/foo/alipayRootCert.crt";
        $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
        $aop->appId = self::$appid;
	    $aop->rsaPrivateKey = self::$prikey;
        $aop->format = "json";
        $aop->charset= "utf-8";
        $aop->signType= "RSA2";
        //调用getPublicKey从支付宝公钥证书中提取公钥
        $aop->alipayrsaPublicKey = $aop->getPublicKey($alipayCertPath);
        //是否校验自动下载的支付宝公钥证书,如果开启校验要保证支付宝根证书在有效期内
        $aop->isCheckAlipayPublicCert = false;
        //调用getCertSN获取证书序列号
        $aop->appCertSN = $aop->getCertSN($appCertPath);
        //调用getRootCertSN获取支付宝根证书序列号
        $aop->alipayRootCertSN = '687b59193f3f462dd5336e5abf83c5d8_02941eef3187dddf3d3b83462e1dfcf6';
        $res = $aop->getRootCertSN($rootCertPath);
        $request = new AlipayFundTransUniTransferRequest ();
        $order_no = time().rand(1111,9999);
        $request->setBizContent("{" .
                "\"out_biz_no\":\"".$order_no."\"," .
                "\"trans_amount\":".$price."," .
                "\"product_code\":\"TRANS_ACCOUNT_NO_PWD\"," .
                "\"biz_scene\":\"DIRECT_TRANSFER\"," .
                "\"payee_info\":{" .
                    "\"identity\":\"$find['account']\"," .
                    "\"identity_type\":\"ALIPAY_LOGON_ID\"," .
                    "\"name\":\"$find['name']\"," .
                "      }," .
                "\"remark\":\"账户提现\"," .
                "  }");
        $result = $aop->execute ( $request);
        $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
        $resultCode = $result->$responseNode->code;
        
        if(!empty($resultCode)&&$resultCode == 10000){
            //修改订单状态
            $resultmsg = $result->$responseNode->msg;
            $data['code'] = 1;
            $data['msg'] = $resultmsg;
            return json($data);
        } else {
            $resultmsg = $result->$responseNode->sub_msg;
            $data['code'] = 2;
            $data['msg'] = $resultmsg;
            return json($data);
        }
    }
//相关配置参考-》https://opendocs.alipay.com/support/01rauw
public static $appid = ' '; //appid
public static $prikey = ' ' ; //应用私钥
public static $pub_key = ''; //应用公钥
public static $alipubkey = '';//支付宝公钥

4、记录遇到的坑
在这里插入图片描述

解决:第三方文件中require_once改成 use 引用

在这里插入图片描述
解决:AopClient.php在这里插入图片描述

码字不易,求点赞
如果任何侵权行为请联系删除

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值