私はビューメソッドAでレンダリングしたショッピングカートを持っています。を介して、カート内の詳細をpesapal apiに送信したいと考えています。私はsandbox app, PaymentViewと同じ方法を使用しています。ショッピングカートには、APIにデータを送信するためのチェックアウトボタンがあります。サンドボックスメソッドsimlpyはデータを辞書(order_info)として取得し、url(get_payment_url)にフィードしてapiをフィードします。したがって、テンプレートを開くとapiのiframeは辞書に指定されたamoutを引き出します。カートを使用してデータを送信するにはどうすればよいですか?ドキュメントとsource code見れDjango payment integration
## Sandbox method submitting data to the api
class PaymentView(TemplateView, PaymentRequestMixin):
template_name = 'payment/payment.html'
# how the sandbox app submits data to api:
def get_context_data(self, **kwargs):
ctx = super(PaymentView, self).get_context_data(**kwargs)
order_info = {
'amount': '1000',
'description': 'Payment for Stuff',
'reference': 2,
'email': '[email protected]'
}
ctx['pesapal_url'] = self.get_payment_url(**order_info)
return ctx
## view method A:
def show_cart(request, template_name="payment/cart.html"):
if request.method == 'POST':
postdata = request.POST.copy()
if postdata['submit'] == 'Remove':
cart.remove_from_cart(request)
if postdata['submit'] == 'Update':
cart.update_cart(request)
if postdata['submit'] == 'Checkout':
# submission to api should occur here
cart_items = cart.get_cart_items(request)
cart_subtotal = cart.cart_subtotal(request)
return render_to_response(template_name, locals(), context_instance=RequestContext(request))
# my url
urlpatterns = patterns('cart.views',
(r'^$', 'show_cart', { 'template_name': 'payment/cart.html' }, 'show_cart'),
)
実際には、あなたは、APIに送信するデータセットを指していますか? @Martinは、辞書としてXMLペイロードを生成するメソッド 'generate_payload'をチェックアウトする[ここ](https://github.com/odero/django-pesapal/blob/master/django_pesapal/views.py) –
appはフォーム提出の後でしか利用できないので、ユーザーがもう一度オプションを編集できるようにする新しいupdate_viewメソッドを作成しました。同じテンプレートにカート付きの支払いタブがあり、それは更新ビューなので、アイテムのデータはあらかじめ入力されていますので、投稿は簡単です@MartinHallén –