小程序支付这个比较简单,在此就不多说,直接看代码即可,现在说一下在退款流程中遇到的坑,证书保存路径问题,按网上流程,把证书保存在根目录的cert中,在curl中获取,都提示错误,找不到证书,后来经过研究,把证书放在了程序文件夹extend中,就可以正常访问.
/**
* 微信支付
*/
public function getWxpay($orderNum, $total, $openId)
{
$wxPay = new WxPay();
$params = [
'appid' => $wxPay->appId,
'mch_id' => $wxPay->mchId,
'nonce_str' => md5(time()),
'body' => "购买商品",
'out_trade_no' => $orderNum,
'total_fee' => $total * 100,
'spbill_create_ip' => $_SERVER['SERVER_ADDR'],
'notify_url' => $wxPay->notifyURL,
'trade_type' => 'JSAPI',
'openid' => $openId,
'product_id' => $orderNum
];
return $wxPay->unifiedorder($params);
}
<?php
namespace common;
use app\common\model\LibWechatConfig;
/**
* 提供微信支付服务管理服务
* @name WxCodePay.php
* @package jypp
* @category model
* @link http://www.chanekeji.com
* @author mengchen
* @version 1.0
* @copyright CHANGE INC
* @since 2023-02-15
*/
class WxPay
{
public $key; //支付秘钥需要更改成自己的
public $appId; //APPID需要更改为自己的
public $mchId; //商户号需要更改成自己的
public $secret; //开发者密码需要更改为自己的
public $uoUrl = 'https://api.mch.weixin.qq.com/pay/unifiedorder'; //无需更改 统一下单API地址
public $refundUrl = "https://api.mch.weixin.qq.com/secapi/pay/refund"; //无需更改 退款API地址
public $notifyURL; //支付通知地址需要更改成你自己服务器的地址
public $sslcert = false; //是否使用证书
public $sslke