我有四个表如下:
费用
fees_id, interest, amount, total_amount, status_id, is_recurring recurring_status from_date to_date payment_id
F001 1.50 1000 1015 1 N NULL 2018-11-01 2018-11-01 1
F002 2.00 2000 1020 1 Y COMPLETE 2018-11-01 2018-11-20 2
Run Code Online (Sandbox Code Playgroud)
支付
id, amount, payment_date, txn_id, bnk_name, txn_status, pay_mode, dd_no, dd_date, chk_no, chk_date
1 1015 2018-11-11 TXN0001 SBI 1 1 NULL NULL NULL NULL
2 1020 2018-11-20 NULL NULL NULL 3 DNO001 2018-11-19 NULL NULL
Run Code Online (Sandbox Code Playgroud)
付费模式
id name display
------------------
1 ONLINE Y
2 CASH Y
3 DRAFT Y …Run Code Online (Sandbox Code Playgroud) 我正在开发一个项目,该项目有两种类型的产品:订阅和事件注册。
我对两者都使用Stripe Checkout Session。由于他们的流程不同,我使用了两个 webhook;每人一份。
例如:
http://example.com/payment/subscription_webhooks.php
http://example.com/payment/event_webhooks.php
问题是,一旦结账会话完成,无论是订阅还是事件注册,两个 webhook 都会被触发。
我正在寻找一种解决方案来定义应触发哪个 webhook。
所以我正在尝试使用 django 在条带中创建一个客户,根据条带中的文档,代码 stripe.Customer.create 应该可以工作,但它只是出现了这个错误,有人能告诉我为什么会这样吗?
视图.py
from django.shortcuts import render, redirect
from django.urls import reverse
from django.http import JsonResponse
import stripe
# Create your views here.
stripe.api_key = "xxxx"
def index(request):
return render(request, 'sales/index.html')
def charge(request):
amount = 5
if request.method == 'POST':
print('Data', request.POST)
stripe.Customer.create(
email=request.POST['email']
)
return redirect(reverse('success', args=[amount]))
def successMsg(request, args):
amount = args
return render(request, 'sales/success.html', {'amount':amount})
Run Code Online (Sandbox Code Playgroud)
追溯
Traceback (most recent call last):
File "C:\Users\snin2\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\snin2\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\handlers\base.py", line 179, …Run Code Online (Sandbox Code Playgroud) 我正在构建一个微型 SaaS,我需要每月根据用户的订阅更新他们的积分。
如果他们选择每月订阅计划,我可以invoice.paid每月收到该活动并向他们的帐户添加积分。
但如果他们选择年度计划呢?有没有办法从 Stripe 接收每月活动?
当设置 Stripe SetupIntend 来触发稍后付款时,我可以从此处看到的一系列付款方式中进行选择:
https://stripe.com/docs/api/setup_intents/object#setup_intent_object- payment_method_options
所以可以这样做:
$setupIntents = $stripe->setupIntents->create([
'customer' => $customer_id,
'description' => 'abcdefgh',
'payment_method_types' => ['card', 'sepa_debit', 'ideal', 'bancontact'],
'metadata' => [
"lastname" => $item->name,
"email" => $item->email,
],
], [
'idempotency_key' => vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex(random_bytes(16)), 4)),
]);
Run Code Online (Sandbox Code Playgroud)
一切都很好,但是 Google Pay 如何集成到这里呢?这里不能使用 Google Pay 或 Apple Pay 作为付款方式吗?
所以我有一个网络应用程序,用户可以支付某些额外的功能,也可以订阅.
起初它只是一些简单的事情,我有一个支付表,它有一个"项目"字段,用于指定用户支付的费用.
但现在需要有其他项目,附带各种参数.即使是订阅也可能需要额外的参数,订阅的时间长短.
我不知道每个这样的项目是否应该有自己的表,或者如何设计它.
我在我的网络应用程序中使用Braintree支付网关.我想知道我是否可以从中获取用户信息.
我无法保存卡的详细信息,这是不允许的.但是如果我需要为同一个用户运行另一个交易,我可以从Braintree本身获取他的信息并自动填写卡的详细信息吗?
我需要以编程方式更改现有订单的付款方式,您可以建议什么?
$quote = $order->getQuote();
$payment = $quote->getPayment();
$payment->importData($data);
$quote->save();
Run Code Online (Sandbox Code Playgroud)
这里有正确的解决方案,这是基于Rajiv的解决方案,前端客户帐户的订单详细信息中的付款方式以及管理面板订单管理中的订单详细信息中的付款方式均在以下代码段后更改,谢谢拉吉夫!
$orderId = '100000009'; // Incremented Order Id
$order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
$payment = $order->getQuote()->getPayment();
$payment->setMethod('test'); // Assuming 'test' is updated payment method
$payment->save();
$order->save();
$payment = $order->getPayment();
$payment->setMethod('test'); // Assuming 'test' is updated payment method
$payment->save();
$order->save();
Run Code Online (Sandbox Code Playgroud) 在我们的网站上,我们有: - 用户注册(数据包括姓名和姓氏) - 嵌入式支付系统(由Stripe提供支持)
用户可以在线购买商品,我们希望确保他们用来支付的卡实际上是由他们拥有的,即卡所有者的名字和姓氏与用户的姓名和姓氏相匹配(如果不是,我们会要求我们的用户更新他们的个人数据或使用另一张卡).我们使用Stripe作为支付服务提供商(顺便说一句,太棒了!)但问题是平台无关.我被告知没有实际的方法来实现这一点(因为付款可以在没有姓名和银行的情况下处理,银行也不会退还),除了将姓名和姓名传递给银行以及收费中的卡号请求并希望发行人银行也对他们进行匹配控制,如果错误他们拒绝支付(但不保证,许多银行不这样做).
有鉴于此,在收取付款时验证用户身份的最佳做法是什么?
我有一个(大学)项目,我基本上使用Android设备从NFC标签中写入和读取文本,以便将余额存储在卡中(例如,可以在自助餐厅使用)。
现在,我正在使用NTAG213执行以下代码:
ndef.connect();
NdefRecord mimeRecord = NdefRecord.createMime("text/plain", messageEncrypted.getBytes(Charset.forName("US-ASCII")));
ndef.writeNdefMessage(new NdefMessage(mimeRecord));
ndef.close();
Run Code Online (Sandbox Code Playgroud)
如您messageEncrypted所见,我正在使用应用程序级加密对消息()进行加密,然后再将其写入标签(使用'com.scottyab:aescrypt:0.0.1'库进行AES-256加密-具有非常大的密码密钥,也使用标签UID作为其一部分)。
到目前为止一切顺利-只有我能理解标签上的数据。
在研究中,我发现涉及安全性Ultralight C> NTAG213。
问题1)使用应用程序级加密时,为什么(是?)MIFARE Ultralight C比NTAG213更安全?
问题2)我很确定我可以使用AES加密来保证安全性,但是我不希望人们(除了我之外)弄乱存储的数据(在其中格式化标签或写入信息)。我看到防止这种情况的唯一方法(如果我错了,请纠正我)是为标签设置密码。但是,NTAG213和Ultralight C都只有32位密码。够好吗?还有另一种方法可以防止某人(除我以外)写数据吗?
问题3)我可以在此类标签上使用其他哪些安全措施来加强安全性(标签和应用程序层)?
问题4)当您比较标签安全性(MIFARE DESFire> Ultralight> NTAG213> MIFARE Classic)时,真正比较的是什么?容易破解(本机标签)加密还是容易在标签上存储(任何东西)未经许可?
问题5)我看到很多其他技术(MIFARE DESFire,ICODE SLIX,英飞凌Cipurse)更安全,这使我想知道我使用的技术(NTAG213或Ultralight C)是否足以存储某人的平衡。您是否愿意(那是个人观点)说具有应用程序级加密和32位密码的NTAG213足以胜任此类应用程序?某人要花多长时间才能真正破坏其安全性?
payment ×10
billing ×1
braintree ×1
credit-card ×1
database ×1
django ×1
encryption ×1
frameworks ×1
identity ×1
javascript ×1
logging ×1
magento ×1
mifare ×1
nfc ×1
php ×1
python ×1
security ×1
subscription ×1
verification ×1
webhooks ×1