【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',timeStamp: String(payData.timeStamp),nonceStr: payData.nonceStr,package: payData.package,signType: payData.signType,paySign: payData.paySign,success: (payRes) => {resolve({success: true,orderNo: payData.order_no,data: payRes})},})}})},

# 最后
更简单的方式可以使用uni-pay + uni云空间;不用调试太多的代码,更快上手
解决uni-pay公众号H5支付,获取openid跨域请求失败
夜雨聆风