Когда компания расширяет свой бизнес, ей необходимо открыть веб-сайт, чтобы расширить сферу своего бизнеса и увеличить каналы дохода.
Например:
Примечание. Если вы реализуете другие бизнес-проекты, такие как торговые платформы или игры, потребуются другие квалификационные документы. Пожалуйста, ознакомьтесь с соответствующими законами и правилами, которые здесь не описаны.
Согласно Постановлению Государственного Совета292Число《Меры по администрированию информационных услуг Интернета》и《Меры по регистрации и управлению некоммерческими информационными Интернет-услугами》Регулирование,Государство внедряет систему лицензирования коммерческих информационных услуг в Интернете,Внедрить систему регистрации некоммерческих информационных услуг Интернета. Неполучение лицензии или невыполнение процедур подачи документов,Запрещено заниматься информационными услугами в Интернете,В противном случае это незаконно.
Таким образом, все веб-сайты, предоставляющие услуги на территории материкового Китая, должны сначала пройти регистрацию ICP. Доступ можно открыть только после успешной регистрации и получения регистрационного номера ICP, выданного Администрацией связи.
Платеж H5 означает, что продавец отображает товары или услуги на мобильной веб-странице за пределами клиента WeChat. Когда пользователь подтверждает использование платежа WeChat на вышеупомянутой странице, продавец инициирует эту услугу и вызывает клиент WeChat для оплаты. В основном он используется в сценариях, когда мобильный браузер с сенсорным экраном запрашивает оплату WeChat. Платеж WeChat можно легко вызвать из внешнего браузера.
1. Используя предприятие в качестве основного органа, зарегистрируйте учетную запись Tencent Cloud;
2. Приобретите пакет ресурсов для сетевой регистрации (сама по себе регистрация в Tencent Cloud бесплатна, но вам необходимо приобрести соответствующий пакет ресурсов)
Типы пакетов ресурсов, которые можно выбрать: https://cloud.tencent.com/document/product/243/18793;
В этой статье в качестве объяснения используется приобретенный пакет ресурсов облачных функций.
3. Откройте платежный торговый счет WeChat;
Сначала войдите в свою учетную запись Tencent Cloud, найдите «Регистрация веб-сайта» в консоли и войдите на страницу «Моя регистрация»:
Вещи, которые необходимо заполнить на этом этапе, относительно просты. Просто заполните их в соответствии с реальной ситуацией в компании. В течение этого периода вам необходимо подготовить лицензию на ведение бизнеса компании и фотографию удостоверения личности ответственного лица. . После заполнения Tencent Cloud сначала проверит его, что займет около 7 рабочих дней.
После завершения рассмотрения предмета можно переходить к следующему шагу:
На странице «Моя регистрация» нажмите кнопку «Добавить веб-сайт», чтобы перейти на следующую страницу:
После подтверждения информации о предмете вы попадете на страницу ниже:
Заполните информацию о зарегистрированном доменном имени:
Если информация о доменном имени не была зарегистрирована, перейдите в консоль и найдите «Регистрация доменного имени», чтобы продолжить.
Официальное подробное объяснение регистрации доменного имени: https://cloud.tencent.com/document/product/242/9595.
В разделе облачных ресурсов выберите пакет бессерверных ресурсов облачных функций, который мы приобрели ранее.
Примечание. IP-адрес будет заполнен автоматически, и его не нужно менять.
После заполнения нажмите «Проверить сейчас», и появится следующее диалоговое окно:
Затем войдите на следующую страницу:
На этой странице необходимо ввести название веб-сайта, например «Taobao» и «Baidu», просто введите имя по мере необходимости.
Информация о примечании также должна быть заполнена правдиво.,Например:Показать профиль компании XX,и веб-сайт с подробной информацией о производимом и продаваемом оборудовании.,И вы можете заказать его товары или услуги онлайн.
Выберите «Повторно использовать шаблон ответственного лица» ниже, чтобы избежать повторного заполнения информации.
Дополнительные примечания к предварительному одобрению:
Примечание. Если ваша заявка предполагает предварительное одобрение,Пожалуйста, обратитесь в отдел утверждения и соответствующие документы утверждения в соответствии с соответствующей категорией предварительного утверждения.,Если вы не можете или не хотите подавать заявку на получение соответствующих документов предварительного одобрения,Вы можете обратиться кТребования администрации провинции , можно ли изменить сферу деятельности или предоставить для подачи соответствующее письмо-обязательство.
Подробную информацию см.:Введение в предварительное одобрение
Если здесь нет особых требований, вы можете пока оставить это поле пустым и сразу перейти к следующему шагу:
Если есть специальные материалы, которые необходимо отправить, но они не отправлены, группа предварительной проверки Tencent Cloud отклонит заявку, а затем просто отправит ее снова.
На данный момент весь процесс регистрации нашего сайта завершен, и мы просто ждем одобрения от соответствующих отделов управления.
Время утверждения будет варьироваться в зависимости от характера региона и займет около 20 дней.
Выберите платеж H5, выберите подачу заявки на активацию после входа, заполните форму и необходимую информацию и дождитесь одобрения.
Процесс одобрения заявки здесь занимает много времени, пожалуйста, наберитесь терпения.
За этот период мы можем сделать следующие приготовления:
Подробную информацию можно найти в официальном документе: Подготовка к доступу к оплате H5 (режим прямого подключения).
https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_6_1.shtml
Создайте новую облачную функцию следующим образом:
Примечание. Здесь облачная функция должна создать триггер шлюза API и связать применяемое доменное имя:
Подробную настройку можно найти в официальном документе: https://cloud.tencent.com/document/product/583/12513.
Здесь используется плагин: wechatpay-axios-plugin
Документация плагина:https://github.com/TheNorthMemory/wechatpay-axios-plugin
Получение таких файлов, как ключ сертификата платформы и ключ сертификата продавца, также подробно описано в документе и не будет здесь повторяться.
//APIV3 платеж
const { Wechatpay } = require('wechatpay-axios-plugin');
const { readFileSync } = require('fs');
// Номер продавца, поддерживает «обычных продавцов/специальных продавцов» или «продавцов поставщиков услуг».
const merchantId = ''; //номер продавца
const appid = '' // APPID
// «Серийный номер сертификата» «Сертификата API продавца», Посмотреть через веб-страницу
const merchantCertificateSerial = '';
// Загрузите «Закрытый ключ Merchant API» из локального файла.
const merchantPrivateKeyFilePath = '/key/apiclient_key.pem';
const merchantPrivateKeyInstance = readFileSync(merchantPrivateKeyFilePath);
// 「WeChat «Серийный номер сертификата» «Сертификата платежной платформы», после загрузки загрузчик предложит ввести поле серийного номера «серийный».
const platformCertificateSerial = '';
// Загрузите «WeChat» из локального файла Сертификат платежной платформы», используемый для проверки WeChat. Подпись тела ответа на запрос платежа
const platformCertificateFilePath = '/key/wechatpay_573AB99XXXXXXXXXXXXXX.pem';
const platformCertificateInstance = readFileSync(platformCertificateFilePath);
// Создать экземпляр платежа
const wxpay = new Wechatpay({
mchid: merchantId,
serial: merchantCertificateSerial,
privateKey: merchantPrivateKeyInstance,
certs: { [platformCertificateSerial]: platformCertificateInstance, },
});
// Облачная Функция ввода функции
exports.main = async (event, context) => {
wxpay.v3.pay.transactions.h5
.post({
appid:appid,
mchid:merchantId,
описание:"Вот запрос Шапку страницы после оплаты готовит продавец",
out_trade_no:"AABBCC"+Date.now().toString(), //Это номер заказа продавца, самодельный
notify_url:"XXXXX",// Это обратный звонок с уведомлением о платеже, это очень важно, не заполняйте его неправильно.
amount:{
total:1,// Вот объем потребления, который должен быть передан из внешнего интерфейса.
currency:'CNY'
},
scene_info:{
payer_client_ip:"127.0.0.1",
h5_info:{
type:'Wap'
}
}
})
.then(({data: {h5_url}}) => console.info(h5_url))
.catch(console.error)
}
Структура каталогов облачных функций:
В папке ключей хранятся ключи продавца и другие файлы.
Также создайте новую облачную функцию и создайте триггер шлюза API. Доменное имя триггера — это параметр notify_url, указанный выше.
//nodejsРасшифровать
const crypto = require('crypto');
//APIV3 модуль nodejs
const { Wechatpay } = require('wechatpay-axios-plugin');
const { readFileSync } = require('fs');
//npm install wechatpay-axios-plugin
// Номер продавца
const merchantId = '';
// Серийный номер сертификата продавца
const merchantCertificateSerial = '';
// Путь к секретному ключу продавца
const merchantPrivateKeyFilePath = './merchant/apiclient_key.pem';
// Закрытый ключ API продавца Текстовая строка формата PEM или файловый буфер
const merchantPrivateKeyInstance = readFileSync(merchantPrivateKeyFilePath);
// Сертификат платформы
const platformCertificateFilePath = './merchant/wechatpay_XXXXX.pem';
const platformCertificateInstance = readFileSync(platformCertificateFilePath);
//Сертификат платформыоткрытый ключ
const platformPubKeyFilePath = './merchant/wechatpay_XXXXXXXX.pem';
const platformPubKeyInstance = readFileSync(platformPubKeyFilePath);
// Сертификат платформыпоследовательность Число,После загрузки загрузчик запросит поле серийного номера.,Вы также можете использовать командную строку
const platformCertificateSerial = '';
//инициализация
const wxpay = new Wechatpay({
mchid: merchantId,
serial: merchantCertificateSerial,
privateKey: merchantPrivateKeyInstance,
certs: { [platformCertificateSerial]: platformCertificateInstance, },
});
exports.main = async (event, context) => {
//Получаем результаты уведомления о платеже
var body = JSON.parse(event.body);
// Расшифровать зашифрованныйтекстсимвол Алгоритм AEAD_AES_256_GCM, проверьте источник
let ciphertext = body.resource.ciphertext;
let nonce = body.resource.nonce;
let associated_data = body.resource.associated_data;
let apiv3key = "";//Ключ APIV3 продавца установлен на веб-странице
ciphertext = Buffer.from(ciphertext, 'base64');
let authTag = ciphertext.slice(ciphertext.length - 16);
let data = ciphertext.slice(0, ciphertext.length - 16);
let decipher = crypto.createDecipheriv('aes-256-gcm', apiv3key, nonce);
decipher.setAuthTag(authTag);
decipher.setAAD(Buffer.from(associated_data));
let decoded = decipher.update(data, null, 'utf8');
decipher.final();
let payData = JSON.parse(decoded); //Расшифроватьназадизданные
console.log(payData)
var sub_mchid =payData.sub_mchid;
var transaction_id = payData.transaction_id;
var out_trade_no = payData.out_trade_no;
// Продавцы могут самостоятельно сформулировать последующую логику
// TODO
// После получения обратного вызова необходимо вернуть следующие поля, иначе уведомление продолжится.
return {
"code": "SUCCESS",
"message": "успех"
}
};
На данный момент все функции реализованы, спасибо за просмотр.