您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Laravel 开发支付宝支付与提现转账的方法

2024/6/29 14:22:17发布24次查看
这篇文章主要介绍了关于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等是否正确,如果使用沙箱测试,请将网关修改为
$aop->gatewayurl = 'https://openapi.alipaydev.com/gateway.do';
最后贴上自己的代码,欢迎指教
/* *支付宝提现接口 */ public function totransfer($orderno, $account, $amount, $payname, $payeerealname, $remark) { $aop = new \aopclient(); $aop->gatewayurl = 'https://openapi.alipaydev.com/gateway.do'; $aop->appid = config('alipay.appid'); $aop->rsaprivatekey = config('alipay.prikey'); $aop->alipayrsapublickey = config('alipay.pubkey'); $aop->apiversion = '1.0'; $aop->signtype = 'rsa2'; $aop->postcharset = 'utf-8'; $aop->format = 'json'; $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 "失败"; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注!
相关推荐:
laravel 学习的基础知识
php bug 调试助手 debug_print_backtrace()的介绍
以上就是laravel 开发支付宝支付与提现转账的方法的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product