So i am trying to implement a stripe payment page and using the examples in 
the current gluon/contrib/stripe.py

I cut and pasted the Template into a page with the default controller to 
see how it went but it failed first up with a global name not defined error 
on pk=PUBLISHABLE_KEY_GOES_HERE.

I then passed the test keys as strings to the controller and ended up with 
the following:

def verify():
    response.flash = T("Enter Your Credit Card Transaction")
    from gluon.contrib.stripe import StripeForm
    form = StripeForm(
        pk="pk_test_K44o7S1yuutpxBBLFOYZTsxl",
        sk="sk_test_MQAXb12hLq3PiJBgVmozMJbS",
        amount=150, # $1.5 (amount is in cents)
        description="Nothing").process()
    if form.accepted:
        payment_id = form.response['id']
        redirect(URL('thank_you'))
    elif form.errors:
        redirect(URL('pay_error'))
    return dict(form=form)

This handled the error above but the code then failed with a different error
 <type 'exceptions.NameError'>(name 'pk' is not defined) 

Tracing this down... the traceback shows that the error is occuring when 
web2py is attempting to construct the html page...

Traceback (most recent call last):
  File "/home/gsv/enertek/web2py/gluon/restricted.py", line 217, in restricted
    exec ccode in environment
  File 
"/home/gsv/enertek/web2py/applications/welcome/views/default/verify.html", line 
84, in <module> <<< this is after the last line of code
    {{if security_notice or disclosure_notice:}}
NameError: name 'pk' is not defined

and is happening here...

75.
76.
77.
78.
79.
80.
81.
82.
83.
84.

85.
86.
87.
88.
89.
90.
91.
92.
93.
94.

    response.write('\n        <div class="span3 left-sidebar">\n            ', 
escape=False)
    response.write('\n            <h3>Left Sidebar</h3>\n            <p></p>\n  
          ', escape=False)
    response.write('\n        </div>\n        ', escape=False)
    pass
response.write('\n\n        <div class="', escape=False)
response.write(middle_columns)
response.write('">\n            ', escape=False)
response.write('\n            ', escape=False)
response.write('\n<script type="text/javascript" 
src="https://js.stripe.com/v2/";></script>\n<script>\njQuery(function(){\n    // 
This identifies your website in the createToken call below\n    
Stripe.setPublishableKey(\'', escape=False)
response.write(pk)

response.write('\');\n\n    var stripeResponseHandler = function(status, 
response) {\n      var jQueryform = jQuery(\'#payment-form\');\n\n      if 
(response.error) {\n        // Show the errors on the form\n        
jQuery(\'.payment-errors\').text(response.error.message).show();\n        
jQueryform.find(\'button\').prop(\'disabled\', false);\n      } else {\n        
// token contains id, last4, and card type\n        var token = response.id;\n  
      // Insert the token into the form so it gets submitted to the server\n    
    var tokenInput = jQuery(\'<input type="hidden" name="stripeToken" />\');\n  
      jQueryform.append(tokenInput.val(token));\n        // and re-submit\n     
   jQueryform.get(0).submit();\n      }\n    };\n\n    jQuery(function(jQuery) 
{\n      jQuery(\'#payment-form\').submit(function(e) {\n\n        var 
jQueryform = jQuery(this);\n\n        // Disable the submit button to prevent 
repeated clicks\n        jQueryform.find(\'button\').prop(\'disabled\', 
true);\n\n        Stripe.createToken(jQueryform, stripeResponseHandler);\n\n    
    // Prevent the form from submitting with the default action\n        return 
false;\n      });\n    });\n});\n</script>\n\n<h3>Payment Amount: ', 
escape=False)
response.write(currency_symbol)
response.write(' ', escape=False)
response.write("%.2f" % (0.01*amount))
response.write('</h3>\n<form action="" method="POST" id="payment-form" 
class="form-horizontal">\n\n  <div class="form-row control-group">\n    <label 
class="control-label">Card Number</label>\n    <div class="controls">\n      
<input type="text" size="20" data-stripe="number"\n\t     
placeholder="4242424242424242"/>\n    </div>\n  </div>\n\n  <div 
class="form-row control-group">\n    <label class="control-label">CVC</label>\n 
   <div class="controls">\n      <input type="text" size="4" style="width:80px" 
data-stripe="cvc"\n\t     placeholder="XXX"/>\n      <a 
href="http://en.wikipedia.org/wiki/Card_Verification_Code"; target="_blank">What 
is this?</a>\n    </div>\n  </div>\n\n  <div class="form-row control-group">\n  
  <label class="control-label">Expiration</label>\t\n    <div 
class="controls">\n      <input type="text" size="2" style="width:40px" 
data-stripe="exp-month"\n\t     placeholder="MM"/>\n      /\n      <input 
type="text" size="4" style="width:80px" data-stripe="exp-year"\n\t     
placeholder="YYYY"/>\n    </div>\n  </div>\n\n\n  <div class="control-group">\n 
   <div class="controls">\n      <button type="submit" class="btn 
btn-primary">Submit Payment</button>\n      <div class="payment-errors error 
hidden"></div>\n    </div>\n  </div>\n  <input type="hidden" name="signature" 
value="', escape=False)
response.write(signature)
response.write('" />\n</form>\n\n', escape=False)
if security_notice or disclosure_notice:
    response.write('\n<div class="well">\n  ', escape=False)
    if security_notice:


How can I fix this please?

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to