PHP使用支付宝官方SDK和phpqrcpde类库生成即时到账付款二维码
2023-05-30 21:31:57
php
开通支付宝网站支付功能的基本流程是:商家网站生成一个订单,然后向支付宝网关发送请求并跳转。支付宝收到款项成功后,通知商家更新订单状态,执行业务处理。
上述过程的不便之处在于,用户点击付款后会跳出商户自网站,流程多操作相对繁琐,因此在网站上直接完成订单支付也越来越受欢迎。
通常情况下,首选在站内生成支付二维码,以快速收款。
本文介绍使用PHPCMS+phpqrcode类库+支付宝SDK生成一个即时到账付款二维码实现方式,代码如下:
上述过程的不便之处在于,用户点击付款后会跳出商户自网站,流程多操作相对繁琐,因此在网站上直接完成订单支付也越来越受欢迎。
通常情况下,首选在站内生成支付二维码,以快速收款。
本文介绍使用PHPCMS+phpqrcode类库+支付宝SDK生成一个即时到账付款二维码实现方式,代码如下:
require_once(PHPCMS_PATH. 'alipay/config.php'); // 配置文件 require_once(PHPCMS_PATH. 'alipay/aop/SignData.php'); require_once(PHPCMS_PATH. 'alipay/aop/AopClient.php'); require_once(PHPCMS_PATH. 'alipay/aop/request/AlipayTradePrecreateRequest.php'); $aop = new AopClient(); $aop->appId = $config['app_id']; // 应用唯一ID $aop->gatewayUrl = $config['gatewayUrl'];//支付宝网关 $aop->rsaPrivateKey = $config['merchant_private_key']; // 应用私钥 $aop->alipayrsaPublicKey = $config['alipay_public_key']; // 支付宝公钥 $aop->signType = "RSA2"; $aop->format = "json"; $aop->charset = "UTF-8"; $aop->debugInfo = true; $request = new AlipayTradePrecreateRequest(); $arr['body'] = '这是笔记部落测试订单';//商品描述(可空) $arr['subject'] = '笔记部落测试订单'; $arr['out_trade_no'] = time();//订单号(这里用时间戳模拟订单号) $arr['timeout_express'] = '1d'; // 订单过期时间(1d=24小时、1m=1分钟、1h=1小时等等) $arr['total_amount'] = floatval(0.01);//订单金额 $json = json_encode($arr); $request->setNotifyUrl($config['notify_url']); // 异步回调地址 $request->setBizContent($json); $result = $aop->execute($request); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; $resultCode = $result->$responseNode->code; if(!empty($resultCode) && $resultCode == '10000') { $resp = (array)$result->$responseNode; $url = $resp['qr_code']; //会生成类似这样二维码链接:https://qr.alipay.com/bax8gtfu4smtmy0568 pc_base::load_sys_class('phpqrcode','',0);//引入qrcode类库 $qrcode = new QRcode();//实例化一个QRcode类实例 $qrcode->png($url);//将生成的付款二维码通过qrcode类的png方法生成一张图片并在浏览器输出 } else { return false; } |