目标:我有一个html页面,你可以购买两个不同的项目.一个是5美元,另一个是10美元.我正在使用条带来处理付款.当stripe创建一个支付令牌并将其提交给我的process_charge.php时,我想从POST提交的数据中提取费用.然后我可以用这个金额打电话Stripe_Charge::create().
问题:金额没有提交到我的PHP表单,我不知道如何获得它.
我的临时解决方案:我正在销售的每一件商品都有不同的php形式.然后为每个新项目提供一个新的PHP表单! 不理想
我目前正在使用此处列出的嵌入式表单方法:https://stripe.com/docs/tutorials/checkout
我的订单页面看起来像这样.
<div class="payment-options">
<form action="process_card.php" method="POST">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_PUBLIC_KEY_FOR_TESTING"
data-amount="1000"
data-name="Nice Lint"
data-description="High quality belly button lint."
data-image="images/nice-lint.svg"
data-panel-label="Checkout {{amount}}"
data-label="Pay with Credit Card"
data-billing-address="true"
data-shipping-address="true">
</script>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
所以这很有效.它接收客户的信息,他们的运输/账单地址和他们的信用卡详细信息.然后它生成一个充电令牌并将其提交给process_card.php.在那里,我可以获取令牌并执行以下操作:
if ($_POST) {
Stripe::setApiKey("sk_test_SECRET_KEY_FOR_TESTING");
try {
if (!isset($_POST['stripeToken']))
throw new Exception("The Stripe Token was not generated correctly");
Stripe_Charge::create(array("amount" => '1000'],
"currency" => "usd",
"card" => $_POST['stripeToken']));
}
catch (Exception $e) {
$error = $e->getMessage(); …Run Code Online (Sandbox Code Playgroud) 对不起,如果问题没有发现,我很难正确地表达这个问题.
我正在尝试使用电子邮件模块创建一个简单的纯文本电子邮件,并在满足某些条件时发送它.我正在遇到各种异常行为,并希望了解它.我开始从官方示例(https://docs.python.org/3.4/library/email-examples.html)中提取一个简单的测试,它工作正常.当我开始尝试在我的项目中实现这一点时,我开始得到各种各样的"'module' object has no attribute 'something'".我可以运行这样的东西,它工作正常
import email
import smtplib
# Create message object
msg = email.message.EmailMessage()
# Create the from and to Addresses
from_address = email.headerregistry.Address("Stack of Pancakes", "pancakes@gmail.com")
to_address = email.headerregistry.Address("Joe", "pythontest@mailinator.com")
# Create email headers
msg['Subject'] = "subject of email"
msg['From'] = from_address
msg['To'] = to_address
#
email_content = "This is a plain text email"
msg.set_content(email_content)
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login("pancakes@gmail.com", "password")
server.send_message(msg)
server.quit()
Run Code Online (Sandbox Code Playgroud)
这非常有效.但是,如果我以不同的方式订购东西,事情就会开始破碎,我不明白为什 例如,如果我将from_address和to_address上面的行放在EmailMessage被调用的地方,就像这样
import …Run Code Online (Sandbox Code Playgroud) 基本上,如果我设置 adefaultdict并通过键引用它,它将正常工作并返回我设置为默认值的值。但是,如果我.get()在其上使用 a ,则不会返回默认值。这是我可以给出的最简单的例子。
basedict = defaultdict(dict)
assert(basedict['junk'] == {}) # Pass
assert(basedict.get('junk') == {}) # Pass
assert(basedict.get('popcorn') == {}) # Fail
Run Code Online (Sandbox Code Playgroud)
为了完成,我正在使用 dicts 的 dicts 和我最初遇到问题的代码看起来更像这样
from collections import defaultdict
basedict = defaultdict(dict)
assert(basedict['junk'] == {})
basedict[69] = defaultdict(lambda: 1000)
assert(basedict[69]['junk'] == 1000)
assert(basedict[69].get('junk') == 1000)
assert(basedict[69].get('junk', 420) == 1000)
# The above works fine, but if I call .get on a default dict using a key I've
# never referenced before it returns None …Run Code Online (Sandbox Code Playgroud) python ×2
attributes ×1
collections ×1
dictionary ×1
email ×1
html ×1
import ×1
javascript ×1
php ×1
python-3.x ×1
smtplib ×1