php实现支付宝商户转账

目录

一:背景介绍

一:准备工作

三:代码实现


一:背景介绍

最近工作中,要用到支付宝的商家转账功能,用php代码实现,网上找的内容,有些是老版本的实现,有些是调用sdk,而且功能还不完善。最后自己实现了官方最新的转账功能,特此记录下。

一:准备工作

1:在开放平台签约申请商户,得到商户id和app_id;

2:申请证书和秘钥

这里的证书有CSR私钥,应用公钥证书和支付宝公钥证书,根证书

,应用公钥证和根证书用于转账接口,CSR私钥用于签名,支付宝公钥证书用于转账接口返回值接口验签,东西还是比较多的。
 

三:代码实现

        $parameter = [
            'app_id'                => $this->config['appid'],
            'method'                => 'alipay.fund.trans.uni.transfer',
            'format'                => 'JSON',
            'charset'               => 'utf-8',
            'sign_type'             => 'RSA2',
            'timestamp'             => date('Y-m-d H:i:s'),
            'version'               => '1.0',
            'alipay_root_cert_sn'   => $this->getRootCertSn($certPath.'alipayRoot.crt'),
            'app_cert_sn'           => $this->getCertSn($certPath.'appPublicKey_'.$this->config['appid'].'.crt'),
        ];

//业务参数构造
        $biz_content = [
            'out_biz_no'            => $params['order_no'],
            'trans_amount'          => (string) $params['trans_amount'],
            'biz_scene'             => 'DIRECT_TRANSFER',
            'product_code'          => 'TRANS_ACCOUNT_NO_PWD',

            'order_title'           => $trans_remark,
            'payee_info'            => [
                'identity'          => $params['client_id'],
                'identity_type'     => 'ALIPAY_LOGON_ID',
                'name'              => $params['client_name'],
            ]
        ];
        $parameter['biz_content'] = json_encode($biz_content, JSON_UNESCAPED_UNICODE);
        // 生成签名参数+签名
        $parameter['sign'] = $this->MyRsaSign($this->GetSignContent($parameter));
        // 执行请求
        $result = $this->HttpRequest('https://openapi.alipay.com/gateway.do', $parameter);

php实现支付宝商户转账_第1张图片

你可能感兴趣的:(php开发,php,开发语言)