jiaweiqi 3 роки тому
батько
коміт
1acbe32d83
3 змінених файлів з 13 додано та 10 видалено
  1. 3 0
      apps/WechatApplet/models.py
  2. 2 2
      apps/activity/models.py
  3. 8 8
      util/wechatpay.py

+ 3 - 0
apps/WechatApplet/models.py

@@ -24,6 +24,9 @@ class WechatApplet(models.Model):
     cert_serial_no = models.CharField(max_length=512, verbose_name=u'商户证书序列号', default="")
     apiv3_key = models.CharField(max_length=512, verbose_name=u'商户APIv3密钥', default="")
 
+    create_ip = models.CharField(max_length=100, verbose_name=u'服务器IP地址', default="")
+    callback_api = models.CharField(max_length=100, verbose_name=u'微信支付回调API', default="")
+
     class Meta:
         db_table = "wechat_applet"
         ordering = ['-id']

+ 2 - 2
apps/activity/models.py

@@ -381,7 +381,7 @@ class Pay(models.Model):
         return instance
 
     def _wechatUnifiedOrder(self, app, openid):
-        wechatpay = WechatPay(app.authorizer_appid, app.agent_num, app.agent_key)
+        wechatpay = WechatPay(app)
         wechatpay.unifiedOrder(self.no, self.precreate_amount, openid, self.profit_sharing)
         data = wechatpay.getAppString()
         return data
@@ -435,7 +435,7 @@ class Order(models.Model):
             checkRexponse = WeChatResponse(app.authorizer_appid, app.agent_num, app.agent_key)
             total_fee = checkRexponse.orderquery(pay_no)
             if int(total_fee) == int(self.amount):
-                wechatpay = WechatPay(app.authorizer_appid, app.agent_num, app.agent_key)
+                wechatpay = WechatPay(app)
                 wechatpay.unifiedOrder(pay_no, self.amount, openid, self.pay.profit_sharing)
                 data = wechatpay.getAppString()
                 return data

+ 8 - 8
util/wechatpay.py

@@ -14,7 +14,7 @@ from apps.foundation.models import BizLog
 # 微信支付sign_type
 WEIXIN_SIGN_TYPE = 'MD5'
 # 服务器IP地址
-WEIXIN_SPBILL_CREATE_IP = '81.70.58.181'
+# WEIXIN_SPBILL_CREATE_IP = '81.70.58.181'
 # 微信支付用途
 WEIXIN_BODY = u'小程序支付'
 # 微信统一下单URL
@@ -22,7 +22,7 @@ WEIXIN_UNIFIED_ORDER_URL = 'https://api.mch.weixin.qq.com/pay/unifiedorder'
 # 微信查询订单URL
 WEIXIN_QUERY_ORDER_URL = 'https://api.mch.weixin.qq.com/pay/orderquery'
 # 微信支付回调API
-WEIXIN_CALLBACK_API = 'https://jpm.zzly.vip/api/wechat_notify/'
+# WEIXIN_CALLBACK_API = 'https://jpm.zzly.vip/api/wechat_notify/'
 
 
 class SplitAccountFuc(object):
@@ -184,21 +184,21 @@ class WeChatResponse():
 
 class WechatPay():
 
-    def __init__(self, appid, mch_id, merchant_key):
+    def __init__(self, app):
         self.params = {
-            'appid': appid,
-            'mch_id': mch_id,
+            'appid': app.authorizer_appid,
+            'mch_id': app.agent_num,
             'nonce_str': '',
             'sign_type': WEIXIN_SIGN_TYPE,
             'body': WEIXIN_BODY,
             'out_trade_no': '',
             'total_fee': '',
-            'spbill_create_ip': WEIXIN_SPBILL_CREATE_IP,
-            'notify_url': WEIXIN_CALLBACK_API + appid + '/',
+            'spbill_create_ip': app.create_ip,
+            'notify_url': app.callback_api + app.authorizer_appid + '/',
             'trade_type': 'JSAPI'
         }
         self.prepay_id = None
-        self.merchant_key = merchant_key
+        self.merchant_key = app.agent_key
 
     def getAppString(self):
         data = {