def create_pay_example(): """ 生成微信JS接口下单所需要的参数 example """ wx_pay = WxPay( wx_app_id='WX_APP_ID', # 微信平台appid wx_mch_id='WX_MCH_ID', # 微信支付商户号 wx_mch_key='WX_MCH_KEY', # wx_mch_key 微信支付重要密钥,请登录微信支付商户平台,在 账户中心-API安全-设置API密钥设置 wx_notify_url='http://www.example.com/pay/weixin/notify' # wx_notify_url 接受微信付款消息通知地址(通常比自己把支付成功信号写在js里要安全得多,推荐使用这个来接收微信支付成功通知) # wx_notify_url 开发详见https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7 ) try: pay_data = wx_pay.js_pay_api( openid=u'***user_openid***', # 付款用户openid body=u'***商品名称/付款显示名称***', # 例如:饭卡充值100元 total_fee=100 # total_fee 单位是 分, 100 = 1元 # spbill_create_ip='210.50.0.10' # 若不使用flask框架,则需要传入调用微信支付的用户ip地址 ) print pay_data # 订单生成后将请将返回的json数据 传入前端页面微信支付js的参数部分 return jsonify(pay_data) except WxPayError, e: return e.message, 400
def zhihu_pre(request): if request.META.has_key('HTTP_X_FORWARDED_FOR'): ip = request.META['HTTP_X_FORWARDED_FOR'] else: ip = request.META['REMOTE_ADDR'] logger.debug("qujun zhihu_pre post data: %s", request.POST) # 支付者id openid = request.POST.get('openid') # 被查看者id userid = request.POST.get('userid') body = request.POST.get('body') or u'查看电话' useropenid = UserProfileBase.objects.filter(id=userid).first().openId out_trade_no = time.strftime('%Y%m%d%M%S', time.localtime( time.time())) + "".join(random.choice(CHAR) for _ in range(5)) wx_pay = WxPay( wx_app_id=WEIXIN_APPID, # 微信平台appid wx_mch_id=ZHIHU_ID, # 微信支付商户号 wx_mch_key=ZHIHU_KEY, # wx_mch_key 微信支付重要密钥,请登录微信支付商户平台,在 账户中心-API安全-设置API密钥设置 wx_notify_url='http://ewosugong.com/wxpay/notify/' # wx_notify_url 接受微信付款消息通知地址(通常比自己把支付成功信号写在js里要安全得多,推荐使用这个来接收微信支付成功通知) # wx_notify_url 开发详见https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7 ) try: pay_data = wx_pay.js_pay_api(openid=openid, body=body, total_fee=100, out_trade_no=out_trade_no, spbill_create_ip=ip) User_view_pay = UserVisible(transation_no=out_trade_no, user_payed=openid, user_visible=useropenid, pay_status='prepay', request_time=time.time()) User_view_pay.paysign = pay_data.get('sign', "wrongkey") User_view_pay.save() return HttpResponse(json.dumps(pay_data)) # 订单生成后将请将返回的json数据 传入前端页面微信支付js的参数部分 except WxPayError, e: logge.error("WxPayError: %s", e.message) return HttpResponse("zhifu some thing wrong!")
from wx_pay import WxPay, WxPayError from weixin.config import * from hashlib import sha1 from time import time import json from flask import jsonify wx_pay = WxPay( wx_app_id=WEIXIN_APPID, # 微信平台appid wx_mch_id=ZHIHU_ID, # 微信支付商户号 wx_mch_key=ZHIHU_KEY, # wx_mch_key 微信支付重要密钥,请登录微信支付商户平台,在 账户中心-API安全-设置API密钥设置 wx_notify_url='http://ewosugong.com/wxpay/notify' # wx_notify_url 接受微信付款消息通知地址(通常比自己把支付成功信号写在js里要安全得多,推荐使用这个来接收微信支付成功通知) # wx_notify_url 开发详见https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7 ) try: pay_data = wx_pay.js_pay_api( openid='oT69X1Chvefxgv3wby_-PaEIM9nY', # 付款用户openid body=u'商品', # 例如:饭卡充值100元 total_fee=100, # total_fee 单位是 分, 100 = 1元 spbill_create_ip='47.104.175.181' # 若不使用flask框架,则需要传入调用微信支付的用户ip地址 ) print pay_data print json.dumps(pay_data) # 订单生成后将请将返回的json数据 传入前端页面微信支付js的参数部分 #print jsonify(pay_data) except WxPayError, e: print e.message, 400