Alipay не может перезвонить или проверка подписи не проходит после обратного вызова

Alipay

первый:нет обратного звонка? Или ввести функцию обратного вызова, но не проверить подпись и вернуть отказ в Alipay?

В соответствии с обычной логикой, если проверка не пройдена, бизнес-обработка не будет выполняться для изменения статуса заказа, и заказ все еще находится в неоплаченном состоянии. Для того, чтобы определить, нет ли обратного вызова или проверка не удалась, вы можете распечатать информацию, полученную в запросе, в функции обратного вызова, либо сохранить ее в Redis для просмотра.

       Один: нет обратного звонка

Если обратного вызова нет, весьма вероятно, что ваш notify_url недоступен из внешней сети. Такая ситуация может легко возникнуть в период локальной отладки. Вы можете использовать DingTalk для локального проникновения во внешнюю сеть. Подробности см. средняя часть этой статьи.

Если доступа к серверу нет, то это будет проблема https.SSL-сертификат, зарегистрированный компанией, не является стандартным, поэтому Alipay не может распознать https.

       2: проверка подписи не удалась       

В методе проверки подписи Alipay используется метод, поставляемый с SDK (полный метод обратного вызова см. на странице https://juejin.cn/post/6844903742308007949):

boolean signVerified = AlipaySignature.rsaCheckV1(params, alipayConfig.getAlipayPublicKey(), AlipayConfig.charset, AlipayConfig.signType);

Параметры: информация, полученная из запроса (форма карты), открытый ключ Alipay, метод кодирования и метод подписи.

Так как это метод, инкапсулированный в SDK, то крайне маловероятно, что будут проблемы.Тогда проблема 100% в параметрах.Расскажем о них по порядку.

1.params Это информация, возвращаемая Alipay. Пока Alipay возвращает вам информацию, она должна быть в стандартном формате, и вероятность ошибки очень мала. Она будет исключена из метода знака. Так что с этим параметром в принципе проблем нет.

2. Формат кодировки и метод шифрования, эти два вообще фиксированные, UTF-8 и RSA2 и вообще проблем не будет.

3. Публичный ключ Alipay, который, скорее всего, будет неверным. Давайте сначала поговорим о методе генерации этого параметра, введите open.alipay.com, войдите в систему и войдите в мою открытую платформу, найдите Центр разработчиков в верхнем левом углу --> Веб-приложение и мобильное приложение, найдите свое собственное приложение и нажмите, чтобы просмотреть подробности


Загрузите инструмент шифрования в соответствии с официальным документом https://docs.open.alipay.com/200/105310, сгенерируйте открытый ключ и закрытый ключ и вставьте открытый ключ сюда, следующий открытый ключ Alipay будет сгенерирован автоматически, и закрытый ключ хранится локально. Открытый ключ Alipay, необходимый для проверки подписи, — это строка, показанная на рисунке выше. Нажмите, чтобы просмотреть открытый ключ Alipay.

Проблема заключается в загрузке инструмента шифрования, здесь следует использовать последнюю версию V1.4 (обновлено согласно официальному сайту Alipay)


Если вы используете более старую версию, платеж все равно пройдет успешно, но проверка подписи завершится ошибкой! ! !

Если вы используете более старую версию, платеж все равно пройдет успешно, но проверка подписи завершится ошибкой! ! !

Если вы используете более старую версию, платеж все равно пройдет успешно, но проверка подписи завершится ошибкой! ! !

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

Если есть какие-либо ошибки или вопросы в вышеизложенном, пожалуйста, исправьте или задайте их в области комментариев, спасибо!