• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 支付宝企业账户转账个人账户PHP接口代码

支付宝企业账户转账个人账户PHP接口代码

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了支付宝企业账户接口,支付宝转账接口,PHP接口代码等相关知识,希望对您有所帮助

前言

支付宝企业账户转账个人账户php接口代码,该接口主要用于平台对用户奖励的发放,场景也很简单就是我在你平台上有余额,我提现,平台给钱。

只不过项目中是用的官方的SDK调用的,仔细看了下那个SDK目录,把很多无用的接口(目前自己用不上)也包含在里面,作为强迫症的自己,想着精简一番。

注意

因为使用时间比较长,这里用的是转账的老接口,停止更新了,目前还能正常使用。

需要企业支付宝才能签约

收款账号必填,收款姓名可以不填,但是如果当账号对应多个名字的时候,会提示完善姓名,否则找不到哪个账号,我也不知道为啥一个账号会对应多个姓名这种,可能是支付宝前期账号和手机号没有处理好吧。

付款方(企业方)可以自定义显示的名称,比如企业名称太长想简化可以设置payer_show_name参数

当一个账号在某个很短的时间内,频繁提现相同金额,会触发支付宝的风控,因此 在调用该接口时一定要做好访问频率(同账号,同ip)限制。涉及到金钱的一定要把细节做好。


php代码

<?phpheader('Content-type:text/html; Charset=utf-8');// sdk 单笔转账接口  https://opendocs.alipay.com/apis/api_28/alipay.fund.trans.uni.transferClass AliTransferPay{    public $appId;    public $privateKey;    public $charset ;    public $sign_type ;    public function __construct($appId, $privateKey)    {        $this->appId = $appId;        $this->privateKey = $privateKey;        $this->charset='utf-8';        $this->sign_type='RSA2';    }    /**    * 查询余额,需要签约改功能,如果不能签约的话 会提示 ISV权限不足,建议在开发者中心检查签约是否已经生效    * home.php?mod=space&uid=155549 mixed    */    public function queryBalance()    {        $reqParams = [            'app_id' => $this->appId,            'method' => 'alipay.data.bill.balance.query',            'format' => 'JSON',            'charset' => $this->charset,            'sign_type' => $this->sign_type,            'timestamp' => date('Y-m-d H:i:s'),            'version' => '1.0',        ];        //格式化编码        $bizParmsStr = $this->getSignContent($reqParams);        //计算签名        $sign = $this->getSign($bizParmsStr, $this->sign_type);        $reqParams['sign'] = $sign;        //发送请求        $result = $this->curlPost('https://openapi.alipay.com/gateway.do?charset='.$this->charset, $reqParams);        return json_decode($result,true);    }    /**    * 转账方法    * home.php?mod=space&uid=952169 $order_id string 订单号    * @param $price string 价格    * @param $account string 收款方账户账号    * @param $payee_real_name string 收款方账户姓名 可以不传    * @param string $remark string 支付备注    * @param string $payer_show_name 转账企业支付时显示的名称    * @return mixed    */    public function pay($order_id, $price, $account, $payee_real_name, $remark = '测试', $payer_show_name = '测试')    {        $bizParms = [            'out_biz_no' => $order_id,            'payee_type' => 'ALIPAY_LOGONID',//固定值,老接口            'payee_account' => $account,            'payee_real_name' => $payee_real_name,  //收款方姓名(选填)            'amount' => $price, //转账金额            'remark' => $remark,  //转账备注(选填)            'payer_show_name' => $payer_show_name,  //支付方名称,比如我不想显示公司名称太长了,可以自定义这个名称        ];        $reqParams = [            'app_id' => $this->appId,            'method' => 'alipay.fund.trans.toaccount.transfer',            'format' => 'JSON',            'charset' => $this->charset,            'sign_type' => $this->sign_type,            'timestamp' => date('Y-m-d H:i:s'),            'version' => '1.0',            'biz_content' => json_encode($bizParms),        ];        //格式化编码        $bizParmsStr = $this->getSignContent($reqParams);        //计算签名        $sign = $this->getSign($bizParmsStr, $this->sign_type);        $reqParams['sign'] = $sign;        //发送请求        $result = $this->curlPost('https://openapi.alipay.com/gateway.do?charset='.$this->charset, $reqParams);        return json_decode($result, true);    }    /**    * 根据加密类型,进行参数加密    * @param $params string    * @param string $sign_type 该函数只支持 RSA 和 RSA2两种方式    * @return string    */    public function getSign($params, $sign_type = "RSA")    {        $privateKey = $this->privateKey;        $formatPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\n" .        wordwrap($privateKey, 64, "\n", true) .        "\n-----END RSA PRIVATE KEY-----";        ($formatPrivateKey) or die('您使用的私钥格式错误,请检查RSA私钥配置');        if ($sign_type == 'RSA2') {            openssl_sign($params, $sign, $formatPrivateKey, version_compare(PHP_VERSION, '5.4.0', '<') ? SHA256 : OPENSSL_ALGO_SHA256); //OPENSSL_ALGO_SHA256是php5.4.8以上版本才支持        } else {            openssl_sign($params, $sign, $formatPrivateKey);        }        return base64_encode($sign);    }    /**    * 获取待签名的字符串    * @param $params    * @return string    */    public function getSignContent($params)    {        ksort($params);        $stringToBeSigned = "";        $i = 0;        foreach ($params as $k => $v) {            if (false === $this->checkEmpty($v) && "@" != substr($v, 0, 1)) {                // 转换成目标字符集                $v = $this->transCoding($v, $this->charset);                if ($i == 0) {                    $stringToBeSigned .= "$k" . "=" . "$v";                } else {                    $stringToBeSigned .= "&" . "$k" . "=" . "$v";                }                $i++;            }        }        unset ($k, $v);        return $stringToBeSigned;    }    /**    * 转换字符集编码    * @param $data    * @param $targetCharset    * @return string    */    function transCoding($data, $targetCharset)    {        if (!empty($data)) {            $fileType = $this->charset;            if (strcasecmp($fileType, $targetCharset) != 0) {                $data = mb_convert_encoding($data, $targetCharset, $fileType);            }        }        return $data;    }    /**    * 校验参数是否为空    * @param $value    * @return bool    */    protected function checkEmpty($value)    {        return empty($value) == true;    }    /**    * curl请求,注意https如果没有证书,需要设置不验证证书和host    * @param string $url    * @param string $postData    * @param array $options    * @param bool $isssl    * @return mixed    */    public function curlPost($url = '', $postData = '', $options = [], $isssl = true)    {        if (is_array($postData)) {            $postData = http_build_query($postData);        }        $ch = curl_init();        curl_setopt($ch, CURLOPT_URL, $url);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        curl_setopt($ch, CURLOPT_POST, 1);        curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);        curl_setopt($ch, CURLOPT_TIMEOUT, 30);        if (!empty($options)) {            curl_setopt_array($ch, $options);        }        //https请求 不验证证书和host        if ($isssl) {            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);        }        $data = curl_exec($ch);        curl_close($ch);        return $data;    }}//转账function invoke(){    //调用测试    $appid = '';    $order_id = uniqid();    $price = 0.1;    $saPrivateKey='';    $account = '';//收款方账号    $payee_real_name = '';//收款方真实姓名    $aliPay = new AliTransferPay($appid, $saPrivateKey);    $result = $aliPay->pay($order_id, $price, $account, $payee_real_name);    $result = $result['alipay_fund_trans_toaccount_transfer_response'];    if ($result['code'] && $result['code'] == '10000') {        echo '转账成功';    } else {        echo $result['msg'] . ' : ' . $result['sub_msg'];    }}invoke();


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 支付宝企业账户转账个人账户PHP接口代码

相关文章

  • 2022-04-29精收录和精内容对于网站发展更加重要
  • 2022-04-29JavaScript中字符串(string)如何转json
  • 2022-04-29Node项目中用images+imageinfo库给图片批量添加水印
  • 2022-04-29Photoshop绘制金属质感的指南针
  • 2022-04-29网站文字循环变色代码
  • 2022-04-29聊聊valet是否有适合TP5的驱动?
  • 2022-04-29如何解决centos6终端乱码问题
  • 2022-04-29详解通过WordPress内置函数批量添加文章的方法
  • 2022-04-29PHP将数据导出成excel表格
  • 2022-04-29教你用PHP开发微信公众号文章付费阅读功能

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • Dedecms后台登录验证码不正常显示怎么办
    • js实现滑动进度条
    • Laravel 图片上传失败怎么办
    • node_modules中如何优雅的修改依赖库?方法介绍
    • 百度小程序富文本解析工具bdParse的使用
    • 404页面对网站SEO不可忽视
    • Photoshop设计电影导演工作室网站首页
    • illustrator制做透明气泡
    • 图文详解Thinkphp5多语言切换(中英文实例)
    • 如何利用HTML5 canvas旋转图片?(实例演示)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有