Laravel, Alipay 결제 및 현금 이체 방법 개발

不言
풀어 주다: 2023-04-02 11:10:01
원래의
4030명이 탐색했습니다.

这篇文章主要介绍了关于Laravel 开发支付宝支付与提现转账的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

由于项目需要,所以需要开发支付宝支付与微信支付,支付部分采用了

yansongda/pay   https://packagist.org/packages/yansongda/pay  https://yansongda.gitbooks.io/pay/(文档说明地址)

第三方扩展包 , 简单配置一下就可以使用,没有遇到什么问题  

但是由于业务需要, 需要用到提现业务,也就是支付宝支付的

alipay.fund.trans.toaccount.transfer(单笔转账到支付宝账户接口)

找了很久也没有找到很简单的集成支付宝单笔转账接口的扩展包,所以没办法只能自己来用支付宝给的SDK进行开发

首先下载了支付宝服务端SDK PHP版   下载地址https://docs.open.alipay.com/54/103419/ 

然后解压添加进项目目录  app\Libs\Alipay   Libs为自己建的目录,用来装第三方类库  

之后打开composer.json文件  在autoload里面的classmap里面添加入新添加的SDK

"autoload": {        "classmap": [            "database/seeds",
            "database/factories",
            "app/Libs/Alipay-php-sdk"
        ],
        "psr-4": {            "App\\": "app/"
        },
    。。。。。。
로그인 후 복사

之后再执行composer dump-autoload 这样第三方的SDK就引入成功了

然后在控制器或者自己定义的业务层中就可以直接use这个SDK了 在new 类的时候会在前面出现 \ 属于正常

然后将给出的PHP示例粘贴进自己的业务代码中 点击查看官方请求示例https://docs.open.alipay.com/api_28/alipay.fund.trans.toaccount.transfer#s4

注意事项:

  1、粘贴到自己的业务逻辑中之后 所有new的类必须删除自己手打引入 比如: AopClient() 、 AlipayFundTransToaccountTransferRequest() 否则会爆出class not found 等错误

  2、按照说明配置所有参数之后,请求会爆出 “ 文件编码:[UTF-8] 与表单提交编码:[GBK]两者不一致!”错误,只要将复制的代码中 $aop->postCharset 值的GBK修改成为UTF-8即可

  3、支付宝SDK与Laravel都自定义了encrypt与decrypt函数,所以会产生冲突,只要将支付宝SDK中的 \aop\AopClient.php \aop\AopEncrypt.php \lotusphp_runtime\Cookie\Cokkie.php 下的这两个函数全部重新命名即可,注意所有的 包括引用函数 直接在编辑器中查找替换也可以。

然后根据自己的业务来进行修改就可以了

如果爆出 “$sign”错误,请检查自己的公钥、私钥、AppID等是否正确,如果使用沙箱测试,请将网关修改为

<em><strong><span style="color: #ff0000">$aop->gatewayUrl =</span></strong></em><span style="color: #ff0000"> &#39;https://openapi.alipaydev.com/gateway.do&#39;;</span><span style="color: #ff0000"><br/></span><span style="color: #ff0000"><span style="color: #ffffff">最后贴上自己的代码,欢迎指教</span></span>
로그인 후 복사
/*
     *支付宝提现接口     */
    public function toTransfer($orderNo, $account, $amount, $payName, $payeeRealName, $remark)
    {        $aop = new \AopClient();        $aop->gatewayUrl = &#39;https://openapi.alipaydev.com/gateway.do&#39;;        
    $aop->appId = config(&#39;Alipay.AppId&#39;);        $aop->rsaPrivateKey = config(&#39;Alipay.PriKey&#39;);        
    $aop->alipayrsaPublicKey = config(&#39;Alipay.PubKey&#39;);        $aop->apiVersion = &#39;1.0&#39;;        
    $aop->signType = &#39;RSA2&#39;;        $aop->postCharset = &#39;UTF-8&#39;;        $aop->format = &#39;json&#39;;        
    $request = new \AlipayFundTransToaccountTransferRequest ();        $request->setBizContent("{" .
            "\"out_biz_no\":\"$orderNo\"," .
            "\"payee_type\":\"ALIPAY_LOGONID\"," .
            "\"payee_account\":\"$account\"," .
            "\"amount\":\"$amount\"," .
            "\"payer_show_name\":\"$payName\"," .
            "\"payee_real_name\":\"$payeeRealName\"," .
            "\"remark\":\"$remark\"" .
            "}");        $result = $aop->execute($request);        
            $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
        $resultCode = $result->$responseNode->code;        
        if (!empty($resultCode) && $resultCode == 10000) {            echo "成功";
        } else {            echo "失败";
        }
    }
로그인 후 복사

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

 Laravel 学习的基础知识

php bug 调试助手 debug_print_backtrace()的介绍

위 내용은 Laravel, Alipay 결제 및 현금 이체 방법 개발의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!