700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 支付宝支付与提现转账问题小结

支付宝支付与提现转账问题小结

时间:2020-05-29 06:04:44

相关推荐

支付宝支付与提现转账问题小结

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

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

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

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

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

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

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

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

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

由于项目需要,所以需要开发支付宝支付与微信支付,支付部分采用了yansongda/pay /packages/yansongda/pay https://yansongda.gitbooks.io/pay/(文档说明地址)第三方扩展包 , 简单配置一下就可以使用,没有遇到什么问题 但是由于业务需要, 需要用到提现业务,也就是支付宝支付的alipay.fund.trans.toaccount.transfer(单笔转账到支付宝账户接口)找了很久也没有找到很简单的集成支付宝单笔转账接口的扩展包,所以没办法只能自己来用支付宝给的SDK进行开发首先下载了支付宝服务端SDK PHP版 下载地址https://docs./54/103419/ 然后解压添加进项目目录 app\Libs\Alipay Libs为自己建的目录,用来装第三方类库 之后打开composer.json文件 在autoload里面的classmap里面添加入新添加的SDK

之后再执行composer dump-autoload 这样第三方的SDK就引入成功了然后在控制器或者自己定义的业务层中就可以直接use这个SDK了 在new 类的时候会在前面出现 \ 属于正常然后将给出的PHP示例粘贴进自己的业务代码中 点击查看官方请求示例https://docs./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 = '/gateway.do';最后贴上自己的代码,欢迎指教

/**支付宝提现接口*/public function toTransfer($orderNo, $account, $amount, $payName, $payeeRealName, $remark){$aop = new \AopClient();$aop->gatewayUrl = '/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 "失败";}}

遇到问题:

①代码中填写的是RSA(SHA256)密钥 应用公钥是支付宝RSA签名验签工具生成的

代码里rsaPrivateKey = 私钥(去掉开头,去掉结尾 没有空格)

代码里alipayrsaPublicKey = 支付宝公钥

②check sign Fail! The reason : signData is Empty 报错! 查找错误

var_dump具体错误 appid 错误 、密钥错误、收款方姓名不对、收款方和付款方相同 等

③找不到类

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。