fix(支付): 修复微信支付预下单获取openid时未按最新授权倒序排序导致appid和openid不匹配的缺陷

这个提交包含在:
wikiboss
2026-10-19 11:41:20 +08:00
父节点 859886636f
当前提交 6368c37741
共有 2 个文件被更改,包括 42 次插入 和 1 次删除

查看文件

@@ -0,0 +1,41 @@
<?php
define('ROOT_PATH', __DIR__ . '/../');
define('APP_PATH', ROOT_PATH . 'application/');
define('ADDON_PATH', ROOT_PATH . 'addons' . DIRECTORY_SEPARATOR);
define('DS', DIRECTORY_SEPARATOR);
require ROOT_PATH . 'thinkphp/base.php';
\think\Config::set('database', include ROOT_PATH . 'application/database.php');
// 注册 epay 命名空间
$libraryDir = ADDON_PATH . 'epay' . DS . 'library' . DS;
\think\Loader::addNamespace('Yansongda\\Pay', $libraryDir . 'v2' . DS . 'Yansongda' . DS . 'Pay' . DS);
\think\Loader::addNamespace('Yansongda\\Supports', $libraryDir . 'v2' . DS . 'Yansongda' . DS . 'Supports' . DS);
// 测试用例:验证用户 24 的 openid 获取逻辑与统一下单参数匹配
$userId = 24;
$platform = 'wxMiniProgram';
// 测试:按 id desc 排序获取最新的 openid
$oauth = \addons\shopro\model\UserOauth::where([
'user_id' => $userId,
'provider' => 'Wechat',
'platform' => $platform
])->order('id', 'desc')->find();
echo "【测试】查询用户 {$userId} 的最新授权记录:\n";
if (!$oauth) {
echo "FAIL: 未找到用户授权记录\n";
exit(1);
}
echo "ID: {$oauth->id}, Openid: {$oauth->openid}\n";
// 验证 openid 是否为当前小程序的有效 openid(以 oGsUG 开头)
if (strpos($oauth->openid, 'oGsUG') !== 0) {
echo "FAIL: 获取到的不是当前小程序的有效 openid (期望以 oGsUG 开头)\n";
exit(1);
}
echo "PASS: 成功获取到当前小程序匹配的有效 openid\n";
exit(0);