Exemple #1
0
    def refund_status(self, channel, refund_no):
        if not self.bc_app_id or not self.bc_app_secret:
            return self.param_miss('bc_app_id, bc_app_secret')

        if not channel:
            return self.param_miss('channel')

        if not channel == 'WX':
            return self.param_invalid('channel', '目前本接口只支持WX')

        if not refund_no:
            return self.param_miss('refund_no')

        pay_data = {}
        pay_data['channel'] = channel
        pay_data['app_id'] = self.bc_app_id
        timestamp = long(time.time()) * 1000
        pay_data['timestamp'] = timestamp
        pay_data['app_sign'] = self.bc_sign(timestamp)

        if refund_no:
            pay_data['refund_no'] = refund_no

        data = {}
        data['para'] = pay_data
        hCode, value = httpGet(self.random_server() + '/' + self.api_version +
                               '/' + self.refund_status_url + '?' +
                               urllib.urlencode(data))
        if hCode:
            return json.loads(value)
        else:
            return runtime_error()
Exemple #2
0
    def refund_status(self, channel, refund_no):
         if not self.bc_app_id or not self.bc_app_secret :
            return self.param_miss('bc_app_id, bc_app_secret')
        
         if not channel:
            return self.param_miss('channel')

         if not channel == 'WX':
            return self.param_invalid('channel', '目前本接口只支持WX')

         if not refund_no:
            return self.param_miss('refund_no')

         pay_data = {}
         pay_data['channel'] = channel
         pay_data['app_id'] = self.bc_app_id
         timestamp = long(time.time()) * 1000
         pay_data['timestamp'] = timestamp
         pay_data['app_sign'] = self.bc_sign(timestamp)

         if refund_no:
            pay_data['refund_no'] = refund_no

         data = {}
         data['para'] = pay_data
         hCode, value = httpGet(self.random_server() + '/' + self.api_version + '/' + self.refund_status_url+ '?'+ urllib.urlencode(data))
         if hCode:
            return json.loads(value)
         else:
            return runtime_error()
Exemple #3
0
    def bc_ali_web_pay(self,
                       subject,
                       total_fee,
                       out_trade_no,
                       return_url,
                       show_url=None,
                       anti_phishing_key=None,
                       body=None):
        awp = {}
        awp['appId'] = self.bc_app_id
        awp['appSign'] = self.bc_sign()
        awp['subject'] = subject
        awp['total_fee'] = total_fee
        awp['out_trade_no'] = out_trade_no
        awp['return_url'] = return_url
        if show_url:
            awp['show_url'] = show_url
        if anti_phishing_key:
            awp['anti_phishing_key'] = anti_phishing_key
        if body:
            awp['body'] = body
        data = {}
        data['para'] = json.dumps(awp)

        hCode, value = httpGet('https://' +
                               self.bc_servers[self.server_index] + '/' +
                               self.api_version + '/' + self.ali_web_url +
                               '?' + urllib.urlencode(data))
        #hCode, value = httpGet('http://localhost:8080/1/pay/ali/websign?' + urllib.urlencode(data))
        if hCode:
            return json.loads(value)
        return None
Exemple #4
0
 def bc_red_pack_extra(self, mch_billno, re_openid, nick_name, send_name, wishing, act_name, remark, total_amount=None,
                    countPerUser=None, minA=None, maxA=None, probability=None, period=None):
     pp_data = {}
     pp_data['appId'] = self.bc_app_id
     pp_data['appSign'] = self.bc_sign()
     pp_data['mch_billno'] = mch_billno
     pp_data['re_openid'] = re_openid
     if total_amount:
         pp_data['total_amount'] = total_amount
     pp_data['nick_name'] = nick_name
     pp_data['send_name'] = send_name
     pp_data['wishing'] = wishing
     pp_data['remark'] = remark
     pp_data['act_name'] = act_name
     if countPerUser:
         pp_data['count_per_user'] = countPerUser
     if minA:
         pp_data['min'] = minA
     if maxA:
         pp_data['max'] = maxA
     if probability:
         pp_data['probability'] = probability
     if period:
         pp_data['period'] = period
     params = json.dumps(pp_data)
     data = {}
     data['para'] = params
     hCode, value = httpGet(random_server() + '/' + self.api_version + '/' + self.wx_red_extra_url+ '?'+ urllib.urlencode(data))
     #hCode, value = httpGet('http://127.0.0.1:8080/1/pay/wxmp/redPackExtra?' + urllib.urlencode(data))
     if hCode :
         return json.loads(value)
     return None
Exemple #5
0
 def fetch_open_id(self, code):
     if not code:
         print 'need to login'
         return False, None
     url = self.create_fetch_open_id_url(code)
     hCode, hValue = httpGet(url)
     if hCode:
         return True, hValue
     else:
         return False, None
Exemple #6
0
 def fetch_open_id(self, code):
     if not code :
         print 'need to login'
         return False, None
     url = self.create_fetch_open_id_url(code)
     hCode, hValue = httpGet(url)
     if hCode :
         return True, json.loads(hValue)['openid'] 
     else:
         return False, None
Exemple #7
0
    def query_refund(self,
                     channel=None,
                     bill_no=None,
                     refund_no=None,
                     start_time=None,
                     end_time=None,
                     skip=None,
                     limit=None):
        if not self.bc_app_id or not self.bc_app_secret:
            return self.param_miss('bc_app_id, bc_app_secret')

        if channel and not channel in self.query_channels:
            return self.param_invalid('channel',
                                      '应该在' + str(self.query_channels) + '中')

        pay_data = {}
        if channel:
            pay_data['channel'] = channel
        pay_data['app_id'] = self.bc_app_id
        timestamp = long(time.time()) * 1000
        pay_data['timestamp'] = timestamp
        pay_data['app_sign'] = self.bc_sign(timestamp)

        if refund_no:
            pay_data['refund_no'] = refund_no

        if bill_no:
            pay_data['bill_no'] = bill_no

        if start_time:
            pay_data['start_time'] = start_time

        if end_time:
            pay_data['end_time'] = end_time

        if not skip:
            skip = 0

        if not limit:
            limit = 10

        pay_data['skip'] = skip
        pay_data['limit'] = limit

        data = {}
        data['para'] = pay_data
        hCode, value = httpGet(self.random_server() + '/' + self.api_version +
                               '/' + self.refund_query_url + '?' +
                               urllib.urlencode(data))
        if hCode:
            return json.loads(value)
        else:
            return self.runtime_error()
Exemple #8
0
 def bc_prepare_nativeapi(self, body, out_trade_no, total_fee):
     pp_data = {}
     pp_data['appId'] = self.bc_app_id
     pp_data['appSign'] = self.bc_sign()
     pp_data['trade_type'] = self.wx_native_type
     pp_data['body'] = body
     pp_data['out_trade_no'] = out_trade_no
     pp_data['total_fee'] = total_fee
     params = json.dumps(pp_data)
     data = {}
     data['para'] = params
     hCode, value = httpGet('https://' + self.bc_servers[self.server_index] + '/' +
             self.api_version + '/' + self.prepare_url + '?'+ urllib.urlencode(data)) 
     if hCode :
         return json.loads(value)
     return None
Exemple #9
0
 def bc_un_web_pay(self, orderId, traceId, txnAmt, orderDesc, frontUrl):
     awp = {}
     awp['appId'] = self.bc_app_id
     awp['appSign'] = self.bc_sign()       
     awp['orderId'] = orderId
     awp['traceId'] = traceId
     awp['txnAmt'] = txnAmt
     awp['orderDesc'] = orderDesc
     awp['frontUrl'] = frontUrl
     data={}
     data['para'] = awp
     hCode, value = httpGet('https://' + self.bc_servers[self.server_index] + '/' +
             self.api_version + '/' + self.un_web_url + '?'+ urllib.urlencode(data))
     #hCode, value = httpGet('http://localhost:8080/1/pay/un/websign?' + urllib.urlencode(data))
     if hCode:
         return json.loads(value)
     return None
Exemple #10
0
 def bc_red_pack_extra(self,
                       mch_billno,
                       re_openid,
                       nick_name,
                       send_name,
                       wishing,
                       act_name,
                       remark,
                       total_amount=None,
                       countPerUser=None,
                       minA=None,
                       maxA=None,
                       probability=None,
                       period=None):
     pp_data = {}
     pp_data['appId'] = self.bc_app_id
     pp_data['appSign'] = self.bc_sign()
     pp_data['mch_billno'] = mch_billno
     pp_data['re_openid'] = re_openid
     if total_amount:
         pp_data['total_amount'] = total_amount
     pp_data['nick_name'] = nick_name
     pp_data['send_name'] = send_name
     pp_data['wishing'] = wishing
     pp_data['remark'] = remark
     pp_data['act_name'] = act_name
     if countPerUser:
         pp_data['count_per_user'] = countPerUser
     if minA:
         pp_data['min'] = minA
     if maxA:
         pp_data['max'] = maxA
     if probability:
         pp_data['probability'] = probability
     if period:
         pp_data['period'] = period
     params = json.dumps(pp_data)
     data = {}
     data['para'] = params
     hCode, value = httpGet(random_server() + '/' + self.api_version + '/' +
                            self.wx_red_extra_url + '?' +
                            urllib.urlencode(data))
     #hCode, value = httpGet('http://127.0.0.1:8080/1/pay/wxmp/redPackExtra?' + urllib.urlencode(data))
     if hCode:
         return json.loads(value)
     return None
Exemple #11
0
    def bc_ali_qr_pay(self, method, biz_data, qrcode):
        awp = {}
        awp['appId'] = self.bc_app_id
        awp['appSign'] = self.bc_sign()
        awp['method'] = method
        if biz_data:
            awp['biz_data'] = biz_data
        if qrcode:
            awp['qrcode'] = qrcode
        data = {}
        data['para'] = awp 

        hCode, value = httpGet('https://' + self.bc_servers[self.server_index] + '/' +
                self.api_version + '/' + self.ali_qr_url + '?'+ urllib.urlencode(data))
        #hCode, value = httpGet('http://localhost:8080/1/pay/ali/qrsign?' + urllib.urlencode(data))
        if hCode:
            return json.loads(value) 
        return None
Exemple #12
0
 def bc_prepare_nativeapi(self, body, out_trade_no, total_fee):
     pp_data = {}
     pp_data['appId'] = self.bc_app_id
     pp_data['appSign'] = self.bc_sign()
     pp_data['trade_type'] = self.wx_native_type
     pp_data['body'] = body
     pp_data['out_trade_no'] = out_trade_no
     pp_data['total_fee'] = total_fee
     params = json.dumps(pp_data)
     data = {}
     data['para'] = params
     hCode, value = httpGet('https://' +
                            self.bc_servers[self.server_index] + '/' +
                            self.api_version + '/' + self.prepare_url +
                            '?' + urllib.urlencode(data))
     if hCode:
         return json.loads(value)
     return None
Exemple #13
0
 def bc_un_web_pay(self, orderId, traceId, txnAmt, orderDesc, frontUrl):
     awp = {}
     awp['appId'] = self.bc_app_id
     awp['appSign'] = self.bc_sign()
     awp['orderId'] = orderId
     awp['traceId'] = traceId
     awp['txnAmt'] = txnAmt
     awp['orderDesc'] = orderDesc
     awp['frontUrl'] = frontUrl
     data = {}
     data['para'] = awp
     hCode, value = httpGet('https://' +
                            self.bc_servers[self.server_index] + '/' +
                            self.api_version + '/' + self.un_web_url + '?' +
                            urllib.urlencode(data))
     #hCode, value = httpGet('http://localhost:8080/1/pay/un/websign?' + urllib.urlencode(data))
     if hCode:
         return json.loads(value)
     return None
Exemple #14
0
    def query_refund(self, channel = None, bill_no = None, refund_no = None, start_time = None, end_time = None, skip = None, limit = None):
         if not self.bc_app_id or not self.bc_app_secret :
            return self.param_miss('bc_app_id, bc_app_secret')

         if channel and not channel in self.query_channels:
            return self.param_invalid('channel', '应该在' + str(self.query_channels) + '中')

         pay_data = {}
         if channel: 
            pay_data['channel'] = channel
         pay_data['app_id'] = self.bc_app_id
         timestamp = long(time.time()) * 1000
         pay_data['timestamp'] = timestamp
         pay_data['app_sign'] = self.bc_sign(timestamp)

         if refund_no:
            pay_data['refund_no'] = refund_no

         if bill_no:
            pay_data['bill_no'] = bill_no

         if start_time:
            pay_data['start_time'] = start_time

         if end_time:
            pay_data['end_time'] = end_time

         if not skip:
            skip = 0

         if not limit:
            limit = 10

         pay_data['skip'] = skip
         pay_data['limit'] = limit 

         data = {}
         data['para'] = pay_data
         hCode, value = httpGet(self.random_server() + '/' + self.api_version + '/' + self.refund_query_url+ '?'+ urllib.urlencode(data))
         if hCode:
            return json.loads(value)
         else:
            return self.runtime_error()
Exemple #15
0
    def bc_ali_qr_pay(self, method, biz_data, qrcode):
        awp = {}
        awp['appId'] = self.bc_app_id
        awp['appSign'] = self.bc_sign()
        awp['method'] = method
        if biz_data:
            awp['biz_data'] = biz_data
        if qrcode:
            awp['qrcode'] = qrcode
        data = {}
        data['para'] = awp

        hCode, value = httpGet('https://' +
                               self.bc_servers[self.server_index] + '/' +
                               self.api_version + '/' + self.ali_qr_url + '?' +
                               urllib.urlencode(data))
        #hCode, value = httpGet('http://localhost:8080/1/pay/ali/qrsign?' + urllib.urlencode(data))
        if hCode:
            return json.loads(value)
        return None
Exemple #16
0
 def bc_red_pack(self, mch_billno, re_openid, total_amount, nick_name, send_name, wishing, act_name, remark):
     pp_data = {}
     pp_data['appId'] = self.bc_app_id
     pp_data['appSign'] = self.sign()
     pp_data['mch_billno'] = mch_billno
     pp_data['re_openid'] = re_openid
     pp_data['total_amount'] = total_amount
     pp_data['nick_name'] = nick_name
     pp_data['send_name'] = send_name
     pp_data['wishing'] = wishing
     pp_data['remark'] = remark
     pp_data['act_name'] = act_name
     params = json.dumps(pp_data)
     data = {}
     data['para'] = params
     hCode, value = httpGet(random_server() + '/' + self.api_version + '/' + self.wx_red_url + '?'+ urllib.urlencode(data))
     #hCode, value = httpGet('http://127.0.0.1:8080/1/pay/wxmp/redPack?' + urllib.urlencode(data))
     if hCode :
         return json.loads(value)
     return None
Exemple #17
0
 def bc_red_pack(self, mch_billno, re_openid, total_amount, nick_name,
                 send_name, wishing, act_name, remark):
     pp_data = {}
     pp_data['appId'] = self.bc_app_id
     pp_data['appSign'] = self.sign()
     pp_data['mch_billno'] = mch_billno
     pp_data['re_openid'] = re_openid
     pp_data['total_amount'] = total_amount
     pp_data['nick_name'] = nick_name
     pp_data['send_name'] = send_name
     pp_data['wishing'] = wishing
     pp_data['remark'] = remark
     pp_data['act_name'] = act_name
     params = json.dumps(pp_data)
     data = {}
     data['para'] = params
     hCode, value = httpGet(random_server() + '/' + self.api_version + '/' +
                            self.wx_red_url + '?' + urllib.urlencode(data))
     #hCode, value = httpGet('http://127.0.0.1:8080/1/pay/wxmp/redPack?' + urllib.urlencode(data))
     if hCode:
         return json.loads(value)
     return None
Exemple #18
0
    def bc_ali_web_pay(self, subject, total_fee, out_trade_no, return_url, show_url = None,
        anti_phishing_key = None, body = None):
        awp = {}
        awp['appId'] = self.bc_app_id
        awp['appSign'] = self.bc_sign()
        awp['subject'] = subject
        awp['total_fee'] = total_fee
        awp['out_trade_no'] = out_trade_no
        awp['return_url'] = return_url
        if show_url:
            awp['show_url'] = show_url
        if anti_phishing_key:
            awp['anti_phishing_key'] = anti_phishing_key
        if body:
            awp['body'] = body
        data = {}
        data['para'] = json.dumps(awp)

        hCode, value = httpGet('https://' + self.bc_servers[self.server_index] + '/' +
                self.api_version + '/' + self.ali_web_url + '?'+ urllib.urlencode(data)) 
        #hCode, value = httpGet('http://localhost:8080/1/pay/ali/websign?' + urllib.urlencode(data))
        if hCode:
            return json.loads(value)
        return None
Exemple #19
0
def parseXmlUrl(template, url):
    xml = util.httpGet(url).read()
    return parseXml(template, xml)
Exemple #20
0
def parseXmlUrl(template, url):
    xml = util.httpGet(url).read()
    return parseXml(template, xml)
Exemple #21
0
  <head>
    <title>OTMI: Nature</title>
    <dateCreated>Fri, 15 Dec 2006 11:00:00 +0000</dateCreated>
    <dateModified>Fri, 15 Dec 2006 11:00:00 +0000</dateModified>
    <ownerName>OTMI (Open Text Mining Interface)</ownerName>
    <ownerEmail>[email protected]</ownerEmail>
  </head>
  <body>
      <outerOutline text="test">
          <outline simplexmlparse:count="*"  type="opml" text="Nature 433(7021)" opmlUri="http://www.nature.com/nature/journal/v433/n7021/otmi/otmi-manifest.opml" gzipUri="http://www.nature.com/nature/journal/v433/n7021/otmi/otmi-contents.tar.gz" />
      </outerOutline>
  </body>
</opml>"""

# ---- MAIN ------
url = "http://www.nature.com/otmi/journals.opml"
opml = util.parseXmlUrl(TEMPLATE, url)
for outline in opml.body.outline:
    url= outline.opmlUri
    opmlStr = util.httpGet(url).read()
    # hack! workaround for simplexmlparse's limitations
    # this can easily break but will trigger an exception if it does one day
    opmlStr = opmlStr.replace("<outline text=", "<outerOutline text=").replace("</outline>", "</outerOutline>")
    opmlStr = opmlStr.replace("<outline>", "<outerOutline>").replace("</outline>", "</outerOutline>")
    journalOpml = util.parseXml(template2, opmlStr)
    for o2 in journalOpml.body.outerOutline.outline:
        gzipUrl = o2.gzipUri
        print "downloading "+gzipUrl
        util.httpDownload(gzipUrl, "files/file.tar.gz")
        os.system("cd files; tar xvfz file.tar.gz")