小编Sta*_*kes的帖子

使用条带API从条带令牌获取费用金额

目标:我有一个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)

html javascript php stripe-payments

10
推荐指数
1
解决办法
3469
查看次数

为什么我必须使用python中的电子邮件模块"从模块导入"?

对不起,如果问题没有发现,我很难正确地表达这个问题.

我正在尝试使用电子邮件模块创建一个简单的纯文本电子邮件,并在满足某些条件时发送它.我正在遇到各种异常行为,并希望了解它.我开始从官方示例(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_addressto_address上面的行放在EmailMessage被调用的地方,就像这样

import …
Run Code Online (Sandbox Code Playgroud)

python email import attributes smtplib

1
推荐指数
1
解决办法
259
查看次数

Python 的 collections.defaultdict 正确返回默认值,除非该键没有首先被引用

基本上,如果我设置 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 collections dictionary python-3.x

0
推荐指数
1
解决办法
1515
查看次数