1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > tp框架接入支付宝公钥证书支付+回调

tp框架接入支付宝公钥证书支付+回调

时间:2022-05-13 16:02:15

相关推荐

tp框架接入支付宝公钥证书支付+回调

了解支付宝支付之前先要了解电子商务,电子商务就是,把在先下购物,放到互联网上,人们可以通过网页或者手机直接的看到商品。

电子商务的模式分为很多,

B2B(企业对企业,例如阿里巴巴)B2C (企业对个人例如京东)C2C(个人对个人淘宝等)O2O(线上与线下例如,滴滴打车,顺风滴滴等)

而电子支付也是应电子商务的存在。用来解决在上线购买的支付问题。

支付宝流程

1.注册支付宝账号(ps|个人或企业)

2.接入电脑支付产品(ps企业支付宝账号需要进行签约)

3.创建应用(ps在开放平台)

4.配置秘钥

5.开发调试

看不懂的点击进入B站视频教程

tp框架接入支付宝支付

你好!有很多人在接入支付宝支付时无从下下手,那么在本篇文件,带你详细的了解并实现支付宝支付,废话不多说,咱们开始

第一步 下载demo

请自行注册开发者账号。

进入支付宝开放平台,文档中心》APP支付》下载SDK&Demo,放到tp框架的Vendor中

4.配置文件

在tp框架中配置接入支付宝需要的配置的参数

//支付宝 支付配置'ALI_CONFIG' => array('gatewayUrl' => '/gateway.do',//支付宝网关(固定)''appId' => 'appIDappIDappIDappIDappIDappIDappID',//APPID即创建应用后生成//由开发者自己生成: 请填写开发者私钥去头去尾去回车,一行字符串'rsaPrivateKey' => 'AfewqFEWfefedwfewfewfewfewfewfewfwefewfewfeefwef',//支付宝公钥,由支付宝生成: 请填写支付宝公钥,一行字符串'alipayrsaPublicKey' => 'ewqdwqfwqdfwqfwqfwqfqwfwqfwqfwqfwqfwqferagrGERW',)

控制器代码

调用alipay之前可根据自己的业务需求传入相应的参数,如我添加了一个订单,我把订单号传入do_alipay的方法中去进行支付,在回调中修改订单状态。进而完成支付。

公钥证书支付

//支付宝支付/** @param $order_no 订单号* @param $title 标题* @param $price 价格* @param $notify 回调地址*/public function alipay($order_no,$title,$price,$notify){//加载支付文件require_once root_path() .'/vendor/Alipay/aop/AopCertClient.php';require_once root_path() .'/vendor/Alipay/aop/AopCertification.php';require_once root_path() .'/vendor/Alipay/aop/request/AlipayTradeQueryRequest.php';require_once root_path() .'/vendor/Alipay/aop/request/AlipayTradeWapPayRequest.php';require_once root_path() .'/vendor/Alipay/aop/request/AlipayTradeAppPayRequest.php';$appCertPath = "alipay/appCertPublicKey.crt";//应用证书路径(要确保证书文件可读),例如:/home/admin/cert/appCertPublicKey.crt$alipayCertPath = "alipay/alipayCertPublicKey_RSA2.crt";//支付宝公钥证书路径(要确保证书文件可读),例如:/home/admin/cert/alipayCertPublicKey_RSA2.crt$rootCertPath = "alipay/alipayRootCert.crt";//支付宝根证书路径(要确$out_trade_no = $order_no;//订单号$body = $title;//商品名$subject = $title;//商品介绍$order_amount = $price;//总价$aliConfig = Config('app.ALI_CONFIG'); //加载配置项$aop = new \AopCertClient();$aop->gatewayUrl = $aliConfig['gatewayUrl']; //赋值网关$aop->appId = $aliConfig['appId']; //APPid$aop->rsaPrivateKey = $aliConfig['rsaPrivateKey']; //私钥// $aop->alipayrsaPublicKey= $aliConfig['alipayrsaPublicKey']; //支付宝公钥//调用getPublicKey从支付宝公钥证书中提取公钥$aop->alipayrsaPublicKey = $aop->getPublicKey($alipayCertPath);//是否校验自动下载的支付宝公钥证书,如果开启校验要保证支付宝根证书在有效期内$aop->isCheckAlipayPublicCert = true;//调用getCertSN获取证书序列号$aop->appCertSN = $aop->getCertSN($appCertPath);//调用getRootCertSN获取支付宝根证书序列号$aop->alipayRootCertSN = '687b59193f3f462dd5336e5abf83c5d8_02941eef3187dddf3d3b83462e1dfcf6'; //固定值2028年之前不变$aop->apiVersion = '1.0';$aop->postCharset='UTF-8';$aop->format='json';$aop->signType='RSA2';$request = new \AlipayTradeAppPayRequest();$bizContent = "{"."\"body\":\"$body\","."\"subject\":\"$subject\","."\"out_trade_no\":\"$out_trade_no\","."\"timeout_express\":\"90m\","."\"total_amount\":\"$order_amount\","."\"product_code\":\"QUICK_MSECURITY_PAY\""."}";$request->setBizContent($bizContent);$request->setNotifyUrl($notify);//这里是设置回调方法//$request->setReturnUrl($aliConfig['returnUrl']);// pageExecute 是PC和手机网站 有页面输出// Execute API调用 没页面输出// SdkExecute APP服务端的// $result = $aop->pageExecute($request);//pc端$result = $aop->sdkExecute($request);return $result;}

回调方法 回调验签公钥证书验签

回调方法 我在里获取了订单号 对订单号修改了状态

//支付异步回调地址public function notify_alipay(){$param = $this->request->param();//支付宝证书验签require_once root_path() .'/vendor/Alipay/aop/AopCertClient.php';$aop = new \AopCertClient();//证书路径$alipayCertPath = "alipay/alipayCertPublicKey_RSA2.crt";//支付宝公钥赋值$aop->alipayrsaPublicKey = $aop->getPublicKey($alipayCertPath);//编码格式$aop->postCharset="UTF-8";//签名方式$sign_type="RSA2";//验签代码$flag = $aop->rsaCheckV1($param, null, $sign_type);if ($flag == true){echo 'success';}else{echo 'error';}}

回调地址 可以为域名/模块名/控制器/方法码字不易,求点赞如果任何侵权行为请联系管理员删除

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