这是我的代码:
<script src="https://sdk.paylike.io/3.js"></script>
<script>
var paylike = Paylike('***');
document.querySelector('button').addEventListener('click', pay);
function pay(){
paylike.popup({
// locale: 'da', // pin popup to a locale
title: 'Product',
description: '<?php echo $amount; ?>',
currency: 'GBP',
amount: <?php echo $price; ?>,
// saved on transaction for retrieval from dashboard or API
custom: {
// arrays are fine
products: [
// nested objects will do
],
},
// data from fields will be merged with custom
fields: [
// elaborate custom field
{
name: 'name',
type: 'name',
placeholder: 'John Doe',
required: true,
},
{
name: 'email',
type: 'email',
placeholder: 'john@example.com',
required: true,
},
{
name: 'address',
type: 'address',
placeholder: 'Address',
required: true,
},
{
name: 'postcode',
type: 'postcode',
placeholder: 'Postcode',
required: true,
},
],
}, function( err, res ){
if (err)
return console.log(err);
console.log(res);
location.href = 'success.php?e=' + email;
});
}
</script>
我希望能够以此弹出窗体形式提交电子邮件,以便将其附加到成功网址,从而发送电子邮件收据。但是,我这样做的尝试似乎没有起作用。
以下是控制台的输出:
Object
custom: Object
address: "116"
email: "test@gmail.com"
name: "John Doe"
postcode: "E9 7SR"
transaction: Object
id: "581b23717cb2057463e8d76a"
如何退回电子邮件对象?
提前感谢您的帮助。
答案 0 :(得分:0)
我不知道你正在使用的Paylike JS库,但似乎你在res
对象中有它:期待诸如res.email
,{{1或类似的东西。
如果您查看console.log,您可以使用谷歌浏览器的res.fields.email
命令(允许您浏览控制台记录的对象),您应该能够看到它的位置。
答案 1 :(得分:0)
尝试:
res.custom.email
转化为:
location.href = 'success.php?e=' + res.custom.email;
我认为你应该使用encodeURIComponent来逃避这个价值。电子邮件可能不是网址的问题,但我认为这是一个好习惯:
location.href = 'success.php?e=' + encodeURIComponent(res.custom.email);
下次遇到类似问题时,请尝试在代码中添加debugger;
(断点)(在此示例中,在}, function( err, res ){
之后),在Google Chrome中启动开发人员工具,重新加载,然后脚本将运行但在断点处停止,允许您在该确切点检查变量及其值。