def post(self): if self.has_session_error(): return payerId = self.request.get('PayerID') souvenirInfo = Souvenir.get_souvenir() # もう一度 GetExpressCheckoutで支払額合計を取得する paypalResponse = EC.get_express_checkout_details(self.request.get('token')) hasGetError = ErrorOperation.has_get_error(self.response, paypalResponse, 'GetExpressCheckoutDetails') if hasGetError: return contents = urlparse.parse_qs(paypalResponse.content) # get時と金額を変えてもエラーも何も出ずに決済されるので、そこが怖い... nvpParams = { 'PAYERID': payerId, 'PAYMENTREQUEST_0_PAYMENTACTION': 'Sale', 'PAYMENTREQUEST_0_AMT': contents['PAYMENTREQUEST_0_AMT'][0], 'PAYMENTREQUEST_0_CURRENCYCODE': souvenirInfo['currency'], } paypalResponse = EC.do_express_checkout_payment(self.request.get('token'), nvpParams ) hasDoError = ErrorOperation.has_do_error(self.response, paypalResponse, 'DoExpressCheckoutPayment') if hasDoError: return self.response.out.write(template.render('html/success.html',{}))