[Day15] 建立订单交易API_8

本节将进行完整的虚拟订单请求发送

def get_order(shop_no, need_pay, return_url, backend_url, hash_a1, hash_a2, hash_b1, hash_b2):

    url = 'https://sandbox.sinopac.com/QPay.WebAPI/api/Order'

    origin_message = {
        'ShopNo': shop_no,
        'OrderNo': get_order_no(need_pay),
        'Amount': 500 * 100,
        'CurrencyID': 'TWD',
        'PayType': 'A',
        'ATMParam': {
            'ExpireDate': '20210929'
        },
        'CardParam': {},
        'PrdtName': '虚拟帐号订单',
        'ReturnURL': return_url,
        'BackendURL': backend_url
    }
    
    origin_json_message = json.dumps(origin_message, ensure_ascii=False, separators=(',', ':'))

    print(origin_json_message)

    hash_id = get_hash_id(hash_a1, hash_a2, hash_b1, hash_b2)
    nonce = get_nonce(shop_no)
    sign = get_sign(origin_json_message, nonce, hash_id)
    messge = get_message(hash_id, origin_json_message, get_iv(nonce))

    print(messge)
    
    reqest_body = {
        'Version': '1.0.0',
        'ShopNo': shop_no,
        'APIService': 'OrderCreate',
        'Sign': sign,
        'Nonce': nonce,
        'Message': messge
    }

    r = requests.post(url=url, json=reqest_body)
    return r.json()

shop_no = 'NA0249_001'
hash_a1 = '86D50DEF3EB7400E'
hash_a2 = '01FD27C09E5549E5'
hash_b1 = '9E004965F4244953'
hash_b2 = '7FB3385F414E4F91'
need_pay = True

order_url = 'https://sandbox.sinopac.com/QPay.WebAPI/api/Order'
return_url = 'http://10.11.22.113:8803/QPay.ApiClient/Store/Return'
backend_url = 'http://10.11.22.113:8803/QPay.ApiClient/AutoPush/PushSuccess'

将收到的response print出来

print(get_order(shop_no, need_pay, return_url, backend_url, hash_a1, hash_a2, hash_b1, hash_b2))

结果如下

E3501 – 讯息内容错误

继续盘查是什麽问题


<<:  连续 30 天 玩玩看 ProtoPie - Day 15

>>:  [Day17] - Django-REST-Framework 第一个 API 实作

Git 综合笔记

1. 推资料进新分支 (建立新分支 + 推资料进新分支) (1)建立新专案 命名新专案,并记录网址 ...

Day_22: 让 Vite 来开启你的Vue 之 跨元件响应式资料的处理

Hi Dai Gei Ho~ 我是 Winnie ~ 在今天文章中,我们要来继续延伸 昨天文章的主题...

Wentz QOTD: CISSP练习题

在IT行业工作了26年左右之後,我在2018年成功实现了年度目标,在9个月内通过了19项考试,重新...

Day16 用python写UI-聊聊Binding events

绑定事件就是可以回传在执行时的动作位置,虽然说有很多的不同事件可以使用,但是要注意,当滑鼠与键盘同时...

Day 23 AWS的云上排队服务-SQS

想知道如何在云端上传递和处理来自使用者的网路请求讯息吗?AWS的SQS可以帮助我们做到这一点。我们往...