WordPress插件中的WebhookUrl更新导致致命错误:未捕获的错误:调用未定义的方法Mollie\Api\Endpoints\SubscriptionEndpoint::update()
P粉993712159
P粉993712159 2023-09-04 00:15:50
[PHP讨论组]

我正在尝试更新 mollie 中的 webhookUrl 以进行订阅。旧的 webhookUrl 已经过时了,制作它的程序员已经不在我们身边了。

这是我正在尝试使用的 mollie 的链接。在github上检查了新版本后,我发现更新订阅的方法有点不同。尽管存在差异,我仍然收到错误:

致命错误:未捕获错误:调用未定义的方法 Mollie\Api\Endpoints\SubscriptionEndpoint::update()

这是我用来制作表单的代码。我正在尝试更改 webhookUrl 以连接到 Easy digital Downloads,以便订阅和许可证不会因为无法检查付款而过期。

表单(admin__update_subscription.php):

<form id="wmcs-form" method="post">
    <div class="wmcs_admin_card">
        <div class="wmcs_admin_body">
            <fieldset class="choose-theme-wrap radio-boxes dp-tabular">
                <ul>
                    <li>
                        <label>Customer id</label>
                        <input type="text" id="customer_id" name="customer_id" value="" required>
                    </li>
                    <li>
                        <label>Subscription id</label>
                        <input type="text" id="subscription_id" name="subscription_id" value="" required>
                    </li>
                    <li>
                        <label>Webhook URL</label>
                        <input type="text" id="webhook_url" name="webhook_url" value="" required>
                    </li>
                    <li>
                        <button type="submit" class="button-primary" name="mollie_update_subscription">Change</button>
                    </li>
                </ul>
            </fieldset><!-- End of choose-theme-wrap -->    
        </div><!-- End of wmcs_admin_body -->
    </div><!-- End of wmcs_admin_card -->
</form>

表单处理程序:

public function change_subscription(){ ?>
        <div class="wrap">
        <?php
            if(isset($_POST['mollie_update_subscription'])){
                if(!empty($_POST['customer_id']) && !empty($_POST['subscription_id'])){
                    $customer_id = sanitize_text_field($_POST['customer_id']);
                    $subscription_id = sanitize_text_field($_POST['subscription_id']);
                    $webhook_url = sanitize_text_field($_POST['webhook_url']);
                    // $orderID = sanitize_text_field($_POST['order_id']);
                    // $orderKey = sanitize_text_field($_POST['order_key']);

                    echo $this->mollie_update_subscription($customer_id, $subscription_id, $webhook_url);
                }
            }
        ?>
        <h2><?php _e('Change Subscription URL'); ?></h2>
        <div id="Features" class="wmcs-tabs">
            <?php
                require_once('admin__update_subscription.php');
            ?>
        </div> <!-- End of Settings -->
        <?php
    }

莫莉更新请求:

public function mollie_update_subscription($customer_id, $subscription_id, $webhook_url){
        $mollie = new \Mollie\Api\MollieApiClient();
        $mollie->setApiKey(MOLLIE_KEY);(defined elsewhere)

        $message = "";
        try {
            $customer = $mollie->customers->get($customer_id);
            $subscription = $customer->getSubscription($subscription_id);

            $subscription->webhookUrl = $webhook_url;
            $subscription->description = 'subscription update success';
            
            $mollie->subscriptions->update();

            $message = "<p>Subscription updated: " . $subscription->id . "</p>";
        } catch (\Mollie\Api\Exceptions\ApiException $e) {
            $message = "<div class='alert alert-danger' role='alert'>API call failed: " . htmlspecialchars($e->getMessage()).'</div>';
        }
        return $message;
    }

知道我缺少什么吗?我希望这会更新 webhookUrl,以便付款将自动连接到网站上的订阅。

P粉993712159
P粉993712159

全部回复(1)
P粉685757239

找到了解决方案。我需要更改这部分:

$mollie->subscriptions->update();

$subscription->update();

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号