Linksfield Developer
OverviewCube APIsOld version
OverviewCube APIsOld version
  1. CSSS APIs
  • CSSS APIs
    • Overview
    • Internationalization
    • Status code
    • Sign code Example
    • SIM
      • Get all SIM cards info
      • Get real-time info about one SIM card
      • Get the SIM Cards in use
    • Usage
      • Example Query the traffic usage of a single SIM card
      • Batch querying SIM card usage
      • Example Query the daily usage
      • Batch querying the usage in a specified month
    • Plan
      • Get data plan
      • Order data plan
      • Bulk order package
      • Renew your data plan
      • Query the package order information
      • To enable the order
      • Cancel an unenabled package order
      • End package orders early
      • [不推荐]停机/暂停流量套餐订单
      • [不推荐]复机/重新启动流量套餐订单
      • 【不推荐】分页批量(查询)同步设备可订购套餐
    • SMS
      • Send SMS
    • Customized
      • Order OTA Plan
      • Query the remaing data by MNO side
  • Notification
    • Notification Overview
    • Notification status code
    • 流量使用量API预警
      POST
    • 短信下行回调
      POST
    • 短信上行回调
      POST
    • 短信上行回调(区分文本二进制)
      POST
    • Plan Order Status Change notification (IMSI)
      POST
  • Mall APIs
    • Mall全局说明
    • Mall业务流程
    • Mall签名代码示例
    • APP调用Stripe的SDK示例说明
    • Vshop
      • 卡片登录验证
      • 获取可购套餐商品列表
      • 创建用户订单
      • 查询自动续费记录
      • 关闭自动续费
      • 查询正在使用、未启用订单
      • 获取生效中的自动续费
      • 关闭自动续费
      • 用户下单(第三方支付)
    • Payment
      • 获取stripe单次支付权限
      • 获取Stripe订阅支付权限
      • 创建Stripe订阅/自动续费
      • 支付结果查询
      • 支付结果确认
    • Notification
      • 消息推送
  • eSIM QR Mall APIs
    • Introduction
    • Pre - order
      POST
    • v1.1/payment/webhook
      POST
    • User login
      POST
    • My eSIM Detail
      POST
    • Pre - order v1.2
      POST
  1. CSSS APIs

Sign code Example

Python#

import base64
import hmac
from hashlib import sha1
import json

def hash_hmac_sign(code, key, sha1):
    hmac_code = hmac.new(key.encode(), code.encode(), sha1).digest()
    return base64.b64encode(hmac_code).decode()

if __name__ == '__main__':
    strb = {
        "version": "2.0",
        "access_code": "P000270",
        "timestamp": "1643251754",
        "device_id": "89852022018041800193",
    }
    strb2 = str(strb)
    key_P000270 = "cfIAKh8O5ARL6HKAyUWUDYIZ64oZBJdW"
    '''
        data = json.dumps(strb, sort_keys=True, indent=4, separators=(',', ': ')) #indent=4 展示的样式
        sort_keys是告诉编码器按照字典key排序(a到z)输出
        indent参数根据数据格式缩进显示,读起来更加清晰, indent的值,代表缩进空格式
        separators参数的作用是去掉‘,’ ‘:’后面的空格,在传输数据的过程中,越精简越好,冗余的东西全部去掉。
        skipkeys参数,在encoding过程中,dict对象的key只可以是string对象,如果是其他类型,那么在编码过程中就会抛出ValueError的异常。skipkeys可以跳过那些非string对象当作key的处理.
        ensure_ascii=False (False输出中文、True输出ascii编码),json.dumps 序列化时对中文默认使用的ascii编码
    '''

    data = json.dumps(strb, sort_keys=True, separators=(',', ':'), ensure_ascii=False)
    print(data)
    print(hash_hmac_sign(data, key_P000270, sha1))
		


Modified at 2022-10-05 04:52:59
Previous
Status code
Next
Get all SIM cards info
Built with