[置顶] 实现APP支付QQ,微信,支付宝三方的后端服务------php实现支付宝APP支付
2018-02-11 17:10
1206 查看
前言:支付功能,可能目前大部分产品的设备都开始慢慢设计到,这里说到的支付有支付宝,微信,QQ等第三方支付
下面简单介绍下支付宝App支付后端的实现(这边是用php实现的):一、 一些琐碎的申请和设置的方式就不说明了,支付宝开发者上有php服务端的Sdk,所以直接把SDK下载下来:
下载地址如下:下载
二、 我这边用因为公司用的框架是tp3.2所以我把代码下载下来就放在vendor中
三、接下来就附上我的支付宝的支付工具类:
<?php /** * @encoding UTF-8 * @author wyb * @datetime 2017/3/29 * @Description 支付宝支付控制器 */ namespace Pay\Controller; use Think\Controller; /** * @name * Class AlipayAppPayController */ class AlipayAppPayController extends Controller { //因为我们公司有多个产品设备所以这边根据所传的来源设备赋予设备ID private $appidByTarget = [ 'xxxx' => '201702234205510228', 'xxxx' => '201702234205510228', 'xxxx' => '201702234205510228', 'xxxx' => '201702234205510228', 'xxxx' => '201702234205510228', 'xxxx' => '201702234205510228', ]; /** *这里需要说明下这里是我们产品所需要的部分逻辑,如果有需要也可学习使用 * * 传入订单数据,进行整理、签名后,返回前端APP支付调起SDK信息 * @param array $order 待支付的订单信息,数组中的必要信息如下: * $order['id'] : 订单ID * $order['price'] : 实付金额,单位:元 * $order['notifyUrl'] : 支付端异步通知地址,用于接受订单的支付结果 * $order['target'] : 支付请求的来源,根据不同的来源,需要使用不同的支付账号信息 * $order['title'] : 订单中文标题 * $order['description'] : 订单介绍 */ public function getCallSDKInfo($order){ //做简单的参数检查 if(!$order || !is_array($order) || !$order['id'] || !$order['price'] || !$order['notifyUrl'] || !$order['target']){ return false; } //整理待签名数据 $content = [ 'body' => $order['description'], //商品介绍 'subject' => $order['title'], //标题 'out_trade_no' => $order['id'], //商家订单ID 'timeout_express' => '60m', //可支付有效时间,超过则无效,需要重新请求 'total_amount' => $order['price'], //价格 'seller_id' => '', //收款支付宝用户ID。 如果该值为空,则默认为商户签约账号对应的支付宝用户ID 'product_code' => 'QUICK_MSECURITY_PAY', 'goods_type' => '0' //商品类型 ]; Vendor('aop.request.AlipayTradeAppPayRequest'); Vendor('aop.AopClient'); $request = new \AlipayTradeAppPayRequest(); $request->setBizContent(json_encode($content)); //请求对象,传入订单信息 $request->setNotifyUrl($order['notifyUrl']); //支付异步通知地址 $client = new \AopClient(); //实例化工具类 $client->appId = $this->appidByTarget[$order['target']]; return $client->sdkExecute($request); } /** * 查询交易订单信息 * @return array */ public function enquiriesOrderInfo($data) { Vendor('aop.request.AlipayTradeQueryRequest'); Vendor('aop.AopClient'); $client = new \AopClient(); //实例化工具类 $client->appId = $this->appidByTarget[$data['target']]; $request = new \AlipayTradeQueryRequest (); $content['out_trade_no'] =$data['out_trade_no']; $request->setBizContent(json_encode($content)); $result = $client->execute($request); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; $resultCode = $result->$responseNode->code; if(!empty($resultCode)&&$resultCode == 10000){ return true; } else { return false; } } /** * 对异步通知的数据进行验签 * @param array $post 接收到的数据 */ public function signCheck($post){ //进行验签 Vendor('aop.AopClient'); $client = new \AopClient(); return $client->rsaCheckV1($post, null, $post['sign_type']); } }
下面是实现调用这工具类的方式,根据你使用的场景,下面我写的是tp的控制器,如果你是自己的框架或者是laravel,yii,yaf,就按照你们定义的写
<?php /** * 简单的支付类 * @encoding UTF-8 * @author wyb * @datetime 2017/3/29 * @Description 支付宝支付控制器 */ class payController extents Controller { public function pay() { $order =[]//订单数据,这个校验我这边就不做处理了,若需对数据更严谨可以使用加签检验,或者带上token的提高安全性能 $alipay = new \Pay\Controller\AlipayAppPayController(); $order['notifyUrl'] = 'htt://xxxxx'; //这个是给支付宝回调的接口 $data = $alipay->getCallSDKInfo($order);//调用这个方法实现预订单 return $data;//并将支付宝返回的数据发送给前端,若正确前端就能调起支付宝app实现支付。若前端报错,根据前端的错误信息来解决 } }
php后端实现微信宝APP支付,请点击这里:GO
php后端实现QQAPP支付,请点击这里:GO
注:这个就是我php后端实现支付的业务的相关代码,若有什么问题反馈请指出,谢谢,(这里并附上我自己的博客地址:blog.taobaoroom.cn,若有什么问题可根据博客上赋有的QQ群地址联系我哦!!)
相关文章推荐
- [置顶] 实现APP支付QQ,微信,支付宝三方的后端服务------php实现微信APP支付
- [置顶] 实现APP支付QQ,微信,支付宝三方的后端服务------php实现QQAPP支付
- 开源!js实现微信/QQ直接跳转到支付宝APP打开口令领红包
- [置顶] 支付宝APP支付-php后台生成请求参数
- PHP 实现手机端APP支付宝支付功能
- PHP实现QQ、微信和支付宝三合一收款码实例代码
- 梦行扫码付(收银台条码支付 微信钱包条码支付 支付宝二维码支付 手机APP钱包支付 PHP扫码支付 )
- js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
- iOS调起微信,qq,支付宝app支付总结
- 用PHP SDK做支付宝APP支付(下单及验签)
- 整合Hbuilder,实现app的微信支付与支付宝支付
- Unity使用官方sdk实现微信、QQ、微博三方登录(Android)
- 关于android webview 端调原生app 的支付宝接口实现 还有BeeCloud(秒支付) 的接入使用
- 详解JAVA后端实现统一扫码支付:微信篇
- 微信app支付php服务端轮子
- Android APP 内部捐赠实现(支付宝&微信)
- 关于微信的APP支付、公众号(服务号)支付,商户问题
- [置顶] 300行代码实现 微信或QQ 抢红包功能
- Dcloud中mui 微信支付和支付宝支付接口完美实现付款代码(PHP支付宝demo)
- ClipboardManager实现支付宝推荐微信QQ好友复制文字启动支付宝弹出提示框实现