pay-sdk-react
Version:
A cross-platform payment SDK for React, supporting Alipay, WeChat Pay, PayPal, Stripe, Payssion, and Airwallex, compatible with H5, PC, and App environments.
35 lines (32 loc) • 1.08 kB
JavaScript
import { memo, useEffect } from 'react';
var MAlipayAutoSubmit = function MAlipayAutoSubmit(_ref) {
var formHtml = _ref.formHtml;
useEffect(function () {
// 1. 移除之前的表单
var oldForm = document.getElementById('alipaysubmit');
if (oldForm && oldForm.parentNode) {
oldForm.parentNode.removeChild(oldForm);
}
// 2. 创建一个 div 容器,插入 form 字符串
var div = document.createElement('div');
div.innerHTML = formHtml;
// 3. 获取 form 元素
var form = div.querySelector('form#alipaysubmit');
if (form) {
form.acceptCharset = 'UTF-8';
document.body.appendChild(form);
setTimeout(function () {
form.submit();
}, 100);
}
// 4. 卸载时
return function () {
var existForm = document.getElementById('alipaysubmit');
if (existForm && existForm.parentNode) {
existForm.parentNode.removeChild(existForm);
}
};
}, [formHtml]);
return null; // 这个组件不渲染任何内容
};
export default /*#__PURE__*/memo(MAlipayAutoSubmit);