加油卡在线充值接口实例

本代码示例是基于Python的聚合数据-加油卡在线充值API服务请求的代码样例,使用前你需要:

①:通过http://www.juhe.cn/docs/api/id/87 申请加油在线充值API服务

#!/usr/bin/python
# -*- coding: utf-8 -*-
import urllib, md5, json
from urllib import urlencode
def main():
    #参数顺序:订单号,商品id,加油卡类型,充值数量,加油卡卡号,持卡人姓名,持卡人手机号码
    jiayouka = Jiayouka("jtest12340","64127500","1", "1", "10001132000099****", "董好帅", "1891351****")
    result = jiayouka.query()
    if result:
        error_code = result['error_code']
        if error_code == 0:
            """
                "cardnum": "100", /*充值金额*/
                "ordercash": "95.5", /*进货价格*/
                "cardname": "全国加油卡", /*充值名称*/
                "sporder_id": "S20141125221812330", /*商家订单号*/
                "game_userid": "100011320000991****", /*加油卡卡号*/
                "game_state": "0", /*充值状态:0充值中 1成功 9撤销*/
                "uorderid": "S2014111111115" /*商户自定的订单号*/
            """

            #以下充值成功后的业务逻辑请自行修改
            sporder_id = result['result']['sporder_id']
            ordercash = result['result']['ordercash']

            print "充值成功"
        else:
            print result['reason'],"(",result['error_code'],")"
    else:
        print "提交充值失败,请重试"

class Jiayouka:

    url = 'http://op.juhe.cn/ofpay/sinopec/onlineorder' #充值接口地址

    key = 'c5cf1fe0a8771c0d3f************' #申请的加油卡充值appkey

    openid = 'JH8d954266539f8af***********' #Openid,在个人中心查看

    orderid = '' #用户自定单号,8-32位字母、数字组合

    proid = '' #产品id:10000(中石化50元加油卡)[暂不支持]、10001(中石化100元加油卡)、10003(中石化500元加油卡)、10004(中石化1000元加油卡)、10007(中石化任意金额充值)[暂不支持]、10008(中石油任意金额充值)

    cardnum = '1' #充值数量(产品id为10007、10008时为具体充值金额(整数),其余产品id请传固定值1);注:中石油任意冲(产品id:10008)暂时只支持100\200\500\1000

    gameuserid = '' #加油卡卡号

    mobilephone = '' #持卡人手机号码,可以填写一个固定格式的手机号码,如:18900000000

    realname = '' #持卡人姓名

    itype = '' #加油卡类型 (1:中石化、2:中石油;默认为1)

    def __init__(self,iorderid,icardid,itype,icardnum,igameuserid,irealname,imobilephone):
        self.orderid = iorderid
        self.cardid = icardid
        self.cardnum = icardnum
        self.gameuserid = igameuserid
        self.realname = irealname
        self.mobilephone = imobilephone
        self.type = itype

    def query(self):
        signsource = self.openid+self.key+self.proid+self.cardnum+self.gameuserid+self.orderid
        m = md5.new()
        m.update(signsource)
        sign = m.hexdigest()

        params = {"key":self.key,"orderid":self.orderid,"chargeType":self.type,"proid":self.proid,"cardnum":self.cardnum,"game_userid":self.gameuserid,"gasCardTel":self.mobilephone,"gasCardName":self.realname,"sign":sign}
        params = urlencode(params)
        print params

        fullurl = self.url+'?'+params

        wp = urllib.urlopen(fullurl)
        content = wp.read()
        res = json.loads(content)
        if res:
            return res
        else:
            return False

if __name__ == '__main__':
    main()


登录 后可发表评论

    最新发布
    聚合数据©版权所有