1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/binary-weixin-java-tools

 / Детали:

объект `com.github.binarywang.wxpay.bean.ecommerce.RefundsRequest.Amount` имеет приватные поля, поэтому напрямую создать и...

Предстоит сделать
Владелец
Создано  
11.06.2025

инициализировать его поля невозможно. Однако, вы можете использовать различные техники для инициализации этого объекта, такие как использование рефлексии или создание публичного конструктора или метода установки значений. Пример использования рефлексии для инициализации объекта: java import java.lang.reflect.Field; public class RefundsRequestExample { public static void main(String[] args) { try { // Создаем объект RefundsRequest.Amount Object amountObject = Class.forName("com.github.binarywang.wxpay.bean.ecommerce.RefundsRequest$Amount").getConstructor().newInstance(); // Используем рефлексию для установки значений приватных полей Field totalField = amountObject.getClass().getDeclaredField("total"); totalField.setAccessible(true); totalField.set(amountObject, 100L); // Пример значения Field refundField = amountObject.getClass().getDeclaredField("refund"); refundField.setAccessible(true); refundField.set(amountObject, 50L); // Пример значения System.out.println("Объект Amount успешно инициализирован."); } catch (Exception e) { e.printStackTrace(); } } } В этом примере мы используем рефлексию для создания объекта Amount и установки значений его приватных полей. Обратите внимание, что использование рефлексии может быть неэффективным и затруднительным для поддержки, поэтому рекомендуется создать публичные методы или конструкторы для инициализации объекта, если это возможно.Если вы работаете с процессом возврата средств, вам потребуется правильно настроить объект Amount и передать его в соответствующий метод для обработки возврата.

Рекомендуется всем пользователям отправлять сообщения о проблемах на соответствующую страницу GitHub. Это поможет в единой системе отслеживания и управления. Ссылка на страницу: https://github.com/binarywang/WxJava/issues

Конечно, если вы хотите задать вопрос здесь, пожалуйста, используйте следующий формат. Спасибо за сотрудничество!

Перед тем как задать вопрос, убедитесь, что вы ознакомились с описанием проекта на главной странице и с документацией по разработке в wiki, особенно с разделом часто задаваемых вопросов. После заполнения формы, пожалуйста, удалите все ненужные строки, включая эту, чтобы не мешать чтению. Спасибо за сотрудничество!

Если вы уверены, что это баг, и знаете, как его исправить, пожалуйста, следуйте руководству по вкладу и отправьте pull request. Это поможет сэкономить время на описание проблемы. Спасибо за сотрудничество!

Краткое описание

При возврате в режиме服务商模式退款时, нужно передать объект Amount, но его невозможно создать.

Версии модулей

  • WxJava модуль: weixin-java-pay
  • WxJava версия: 4.7.5.B

Подробное описание

При возврате в режиме服务商模式退款时, нужно передать объект Amount, но его невозможно создать.

RefundsRequest request = new RefundsRequest();
request.setAmount(new RefundsRequest.Amount());

Получаю ошибку: 'Amount()' имеет приватный доступ в 'com.github.binarywang.wxpay.bean.ecommerce.RefundsRequest.Amount'
Как мне создать этот объект?```java
@Data
@Builder
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public static class Amount implements Serializable {
private static final long serialVersionUID = 7383027142329410399L;

/**
 * <pre>
 * Поле: Refund Amount
 * Переменная: refund
 * Обязательно: Да
 * Тип: int
 * Описание:
 *  Сумма возврата, минимальная единица валюты, может быть только целым числом и не должна превышать сумму оплаты оригинального заказа.
 *  Пример: 888
 * </pre>
 */
@SerializedName(value = "refund")
private Integer refund;

/**
 * <pre>
 * Поле: Общая сумма заказа
 * Переменная: total
 * Обязательно: Да
 * Тип: int64
 * Описание:
 *  Общая сумма заказа, выраженная в центах.
 *  Пример: 888
 * </pre>
 */
@SerializedName(value = "total")
private Integer total;

/**
 * <pre>
 * Поле: Тип валюты
 * Переменная: currency
 * Обязательно: Нет
 * Тип: string(18)
 * Описание:
 *  Трехбуквенный код в соответствии со стандартом ISO 4217, в настоящее время поддерживаются только китайские юани: CNY.
 *  Пример: CNY
 * </pre>
 */
@SerializedName(value = "currency")
private String currency;

}

    private String валюта;

     }

Комментарий (0)

GitLife Service Account Задача создана

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/binary-weixin-java-tools.git
git@api.gitlife.ru:oschina-mirror/binary-weixin-java-tools.git
oschina-mirror
binary-weixin-java-tools
binary-weixin-java-tools