Javascript paypal智能按钮,通过谷歌表单向买家发送电子邮件和附件
我有一个paypal智能按钮,我想把它放在我的网站上,向想要购买它的用户出售一个文件,但是我不知道如何从按钮页面的javascript中收集交易人的电子邮件,并将其发布到google表单上。下面是我创建的不起作用的内容Javascript paypal智能按钮,通过谷歌表单向买家发送电子邮件和附件,javascript,html,google-apps-script,paypal-sandbox,google-sheets-api,Javascript,Html,Google Apps Script,Paypal Sandbox,Google Sheets Api,我有一个paypal智能按钮,我想把它放在我的网站上,向想要购买它的用户出售一个文件,但是我不知道如何从按钮页面的javascript中收集交易人的电子邮件,并将其发布到google表单上。下面是我创建的不起作用的内容 <body> <!-- Set up a container element for the button --> <div id="paypal-button-container"></div>
<body>
<!-- Set up a container element for the button -->
<div id="paypal-button-container"></div>
<!-- Include the PayPal JavaScript SDK -->
<script src="https://www.paypal.com/sdk/js?clientId"></script>
<script>
// Render the PayPal button into #paypal-button-container
paypal.Buttons({
// Set up the transaction
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [{
amount: {
value: '5.0'
}
}]
});
},
// Finalize the transaction
onApprove: function(data, actions) {
return actions.order.capture().then(function(details) {
// Show a success message to the buyer
const scriptURL = 'https://script.google.com/macros/s/AKfycbfadsfdkjlbskjfbadsjkfadskjfb/exec'
var email= details.payer.email_address;
var form = new FormData(form);
form.append('email',email);
e => {
e.preventDefault()
fetch(scriptURL, { method: 'POST', body: form})
.then(response => console.log('Success!', response))
.catch(error => console.error('Error!', error.message))
}
alert('Transaction completed by ' + details.payer.email_address + '!'+email);
});
}
}).render('#paypal-button-container');
</script>
</body>
对你有好处:)你能详细说明一下(在问题中),剧本有什么问题吗?另外,我希望您可以将您的电子邮件地址和web应用程序名称放到web上。需要引用:
var emailto=e.parameter[“email”]代码>
function doPost (e) {
var lock = LockService.getScriptLock()
lock.tryLock(10000)
try {
var doc = SpreadsheetApp.openById(scriptProp.getProperty('key'))
var sheet = doc.getSheetByName(sheetName)
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
var nextRow = sheet.getLastRow() + 1
var newRow = headers.map(function(header) {
return header === 'timestamp' ? new Date() : e.parameter[header]
})
sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow]);
var html = HtmlService.createTemplateFromFile('email.html');
var htmlText = html.evaluate().getContent();
var emailto = e.parameter[email];
//var emailto = e.response.getRespondentEmail();
var subject = "thanks for subscribing"
var textBody = "This email requires HTML support."
var options={ htmlBody: htmlText };
if (emailto !== undefined){
GmailApp.sendEmail(emailto, subject, textBody, options);
}
return ContentService
.createTextOutput(JSON.stringify({ 'result': 'success', 'row': nextRow }))
.setMimeType(ContentService.MimeType.JSON);
}