diff --git a/addons/shopro/controller/Pay.php b/addons/shopro/controller/Pay.php index e75e280..91051a0 100644 --- a/addons/shopro/controller/Pay.php +++ b/addons/shopro/controller/Pay.php @@ -137,7 +137,7 @@ class Pay extends Base 'user_id' => $order->user_id, 'provider' => 'Wechat', 'platform' => $platform - ])->find(); + ])->order('id', 'desc')->find(); $order_data['openid'] = $oauth ? $oauth->openid : ''; } diff --git a/tests/UserOauthPayOpenidTest.php b/tests/UserOauthPayOpenidTest.php new file mode 100644 index 0000000..516ea1b --- /dev/null +++ b/tests/UserOauthPayOpenidTest.php @@ -0,0 +1,41 @@ + $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);