Angry1947 2020-11-11 17:02:35
php,thinkphp5.1+微信sdk,实现App微信支付(可能不适合纯小白观看)
/**
*使用微信官方提供的sdk可以很简单的实现微信支付,这里以app支付为例,写的略微草率不适合纯小白观看
*准备工作:我们需要tp框架(自行composer安装或者下载压缩吧),微信支付的sdk(https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1),商户品台参数
*第一步:把下载的sdk放在项目根目录或者其他“你可以找到并且正取引入”目录
*第二步配置商户参数:在sdk文件中找到WxPay.Config.php 并配置APPID,MCHID,KEY,NOTIFY_URL(回调地址,可直接访问,切不能带任何参数)
*第三步:引入需要的文件
* require_once '../dysms/api_demo/SmsDemo.php';
* require_once "../payment/wxpay/WxPay.Api.php";
* require_once "../payment/wxpay/WxPay.Data.php";
* (报错的话自己去调试,用file_exists确认下是否引入)
*第四步:敲代码了,唯一需要你写的就是生成订单号,
*第五步:根据返回的状态码,或者错误信息自行修改,当正确获取到参数的时候就可以将参数返回给前端然后去拉微信支付的支付窗口了
*友情提示:支付成功后的业务逻辑写在回调地址里哦
*/
public function appPay()
{
$amount = 10; //设置支付金额
$total = floatval($amount);
$total = round($total * 100); // 微信支付的单位是分所以需要将元转成分
$desc = $_POST['desc'];
// 商品名称
$subject = $desc;
// 订单号,示例代码使用时间值作为唯一的订单ID号
$out_trade_no = '123456789456123456789'; //订单编号
$unifiedOrder = new \WxPayUnifiedOrder();
$unifiedOrder->SetBody($subject); //设置商品或支付单简要描述
$unifiedOrder->SetOut_trade_no($out_trade_no); //设置订单编号
$unifiedOrder->SetTotal_fee($total); //设置商品金额
$unifiedOrder->SetTrade_type("APP"); //支付方式
$wxpayApi = new \WxPayApi();
$result = $wxpayApi::unifiedOrder($unifiedOrder);
//返回结果
if (is_array($result)) {
echo json_encode($result);
}
}