乐于分享
好东西不私藏

【BuildAdmin】如何调用插件配置小程序支付教程

【BuildAdmin】如何调用插件配置小程序支付教程

云霾在黑暗中发愁,竟忘了遮住太阳的就是它们自己。 —泰戈尔-

由于最近在接触buildadmin框架,在插件市场是有支付插件,文章描述插件的使用和配置过程

教程

1.Buildadmin后台市场安装插件

2.安装插件之后配置支付的商户号和相关证书。

证书的位置上传到项目目录的pubilc/crt/wx目录下。添加绝对路径到配置项中(支付公钥和v3证书

商户私钥
/www/wwwroot/你的域名/public/cert/wx/apiclient_key.pem
商户公钥证书
/www/wwwroot/你的域名/public/cert/wx/apiclient_cert.pem
回调地址
https://你的域名/api/PayNotify/wechat

支付公钥绝对路径

/www/wwwroot/你的域名/public/cert/wx/pub_key.pem

3.后台接口

Buildadmin项目app/api/ controller目录下建一个AppPay.php文件配置支付函数

教程中openid还有金额就使用前端传入,正式项目中请为安全考虑

<?phpnamespaceapp\api\controller;useba\PayLib;useYansongda\Pay\Pay;usethink\facade\DB;usethink\facade\Log;useapp\common\controller\Api;/** * 支付示例控制器 * 本文件提供了完整的支付流程示例,适合新手学习 */classAppPayextendsApi{/**     * 小程序支付     * @return void     */publicfunctionminiPay()    {// 获取用户提交的参数$openid = $this->request->param('openid');$amount = $this->request->param('amount'); // 默认1分// 吧 $amount转成数值类型$amount = floatval($amount);// 2. 获取支付配置$config = PayLib::getConfig();Pay::config($config);// 3. 构建支付订单参数$order = ['out_trade_no' => time().'','description' => '会员商品','amount' => ['total' => $amount,'currency' => 'CNY',                ],'payer' => ['openid' => $openid,                ]            ];// 4. 发起小程序支付$result = Pay::wechat()->mini($order);// 5. 返回支付参数给前端$this->success('获取支付参数成功',$result);    }}

4.uni-app发起支付

点击支付按钮后,触发支付函数;手机上直接调用支付,开发工具会想出现二维码

payTap() {    uni.request({url'你的域名/index.php/api/AppPay/miniPay',method'POST',data: {openid'用户openid',amount'1',product_name'测试'        },success: (res) => {            console.log(res)constpayData = res.data.data;// 2. 调起微信支付            uni.requestPayment({rovider'wxpay',timeStampString(payData.timeStamp),nonceStr: payData.nonceStr,package: payData.package,signType: payData.signType,paySign: payData.paySign,success: (payRes) => {resolve({successtrue,orderNo: payData.order_no,data: payRes                    })                },            })              }    })      },

# 最后

更简单的方式可以使用uni-pay + uni云空间;不用调试太多的代码,更快上手

解决uni-pay公众号H5支付,获取openid跨域请求失败

解决uni-pay公众号支付history路由,刷新报404解决方法

利用uni-pay支付插件统一快速获取用户openid;文档getOpenid组件方法不管用!!!