def test_specil_chinese_in_product_info(): # product_info_list = [u'魃', u'魈', u'魁', u'鬾', u'魑', u'魅', u'魍', u'魉', # u'叒', u'叕', u'焱', u'燚', u'沝', u'淼', u'㵘', u'㙓', # u'𨰻', u'茕', u'沆', u'瀣', u'踽', u'瓞', u'奉', u'臬', # u'龘', u'龘', u'袅', u'娜', u'呶', u'稂', u'莠', u'卬', # u'咄', u'嗟', u'蹀', u'躞', u'耄', u'耋', u'饕', u'餮', # u'囹', u'圄', u'蘡', u'薁', u'龃', u'龉', u'狖', u'轭', # u'鼯', u'靁', u'虺', u'孑', u'孓', u'栉', u'翕'] product_info_list = [ '魃', '魈', '魁', '鬾', '魑', '魅', '魍', '魉', '叒', '叕', '焱', '燚', '沝', '淼', '㵘', '㙓', '𨰻', '茕', '沆', '瀣', '踽', '瓞', '奉', '臬', '龘', '龘', '袅', '娜', '呶', '稂', '莠', '卬', '咄', '嗟', '蹀', '躞', '耄', '耋', '饕', '餮', '囹', '圄', '蘡', '薁', '龃', '龉', '狖', '轭', '鼯', '靁', '虺', '孑', '孓', '栉', '翕' ] for product_info in product_info_list: print 'X' * 200 print '=====>product_info 包含繁体字 生僻字' params = { 'out_trade_id': gen_no(), # 商户交易流水号 Y 'amount': '10', # 支付单金额,单位为元,精度最多小数点后两位(如果是JPY和KRW,单位为分) Y 'currency': 'HKD', # 支付单结算币种 'product_info': product_info, # 商品信息 'client_ip': '127.0.0.1', # 客户端设备IP地址 'notify_url': 'your_notify_url', # 异步通知地址 } print product_info # is_cny 是否采用人民币(CNY)计价,取值"TRUE"/"FALSE",默认值为"FALSE" wechat_cn = WechatCn(is_cny=False) wechat_cn.consumer_scan_web(params)
def test_long_product_info(): print 'X' * 200 print '=====>product_info. 过长' product_info = '1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111' params = { 'out_trade_id': gen_no(), # 商户交易流水号 Y 'amount': '10', # 支付单金额,单位为元,精度最多小数点后两位(如果是JPY和KRW,单位为分) Y 'currency': 'HKD', # 支付单结算币种 'product_info': product_info, # 商品信息 'client_ip': '127.0.0.1', # 客户端设备IP地址 'notify_url': 'your_notify_url', # 异步通知地址 } print 'len of product_info is {0}'.format(str(len(product_info))) # is_cny 是否采用人民币(CNY)计价,取值"TRUE"/"FALSE",默认值为"FALSE" wechat_cn = WechatCn(is_cny=False) wechat_cn.consumer_scan_web(params)
def test_space_in_product_info(): product_info_list = [' test', 'te st', 'test '] for product_info in product_info_list: print 'X' * 200 print '=====>product_info 最前 中间 最后有空格' params = { 'out_trade_id': gen_no(), # 商户交易流水号 Y 'amount': '10', # 支付单金额,单位为元,精度最多小数点后两位(如果是JPY和KRW,单位为分) Y 'currency': 'HKD', # 支付单结算币种 'product_info': product_info, # 商品信息 'client_ip': '127.0.0.1', # 客户端设备IP地址 'notify_url': 'your_notify_url', # 异步通知地址 } print 'product_info is {0}'.format(product_info) # is_cny 是否采用人民币(CNY)计价,取值"TRUE"/"FALSE",默认值为"FALSE" wechat_cn = WechatCn(is_cny=False) wechat_cn.consumer_scan_web(params)
def test_space_in_trade_id(): out_trade_id_list = [' 201902271', '2019 02272', '201902273 '] for out_trade_id in out_trade_id_list: print 'X' * 200 print '=====>out_trade_id 最前有空格 中间有空格 最后有空格' params = { 'out_trade_id': out_trade_id, # 商户交易流水号 Y 'amount': '10', # 支付单金额,单位为元,精度最多小数点后两位(如果是JPY和KRW,单位为分) Y 'currency': 'HKD', # 支付单结算币种 'product_info': 'test', # 商品信息 'client_ip': '127.0.0.1', # 客户端设备IP地址 'notify_url': 'your_notify_url', # 异步通知地址 } print 'out_trade_id is {0}'.format(out_trade_id) # is_cny 是否采用人民币(CNY)计价,取值"TRUE"/"FALSE",默认值为"FALSE" wechat_cn = WechatCn(is_cny=False) wechat_cn.consumer_scan_web(params)
def test_full_width_in_product_info(): product_info_list = [ ",", "。", "【", "】", "「", "」", ";", "“", "(", ")", "”", ":", "?" ] for product_info in product_info_list: print 'X' * 200 print '=====>product_info 包含全角符号' params = { 'out_trade_id': gen_no(), # 商户交易流水号 Y 'amount': '10', # 支付单金额,单位为元,精度最多小数点后两位(如果是JPY和KRW,单位为分) Y 'currency': 'HKD', # 支付单结算币种 'product_info': product_info, # 商品信息 'client_ip': '127.0.0.1', # 客户端设备IP地址 'notify_url': 'your_notify_url', # 异步通知地址 } print 'product_info is {0}'.format(product_info) # is_cny 是否采用人民币(CNY)计价,取值"TRUE"/"FALSE",默认值为"FALSE" wechat_cn = WechatCn(is_cny=False) wechat_cn.consumer_scan_web(params)
def test_special_in_trade_id(): special_list = [ "-", "_", ".", "!", "*", "'", "(", ")", ",", "{", "}", "|", "\\", "^", "~", "[", "]", "`", "<", ">", "#", "%", '"', ";", "/", "?", ":", "@", "&", "=", "$", "+" ] for special in special_list: print 'X' * 200 print '=====>out_trade_id 包含特殊字符' out_trade_id = '2019{special}0227'.format(special=special) params = { 'out_trade_id': out_trade_id, # 商户交易流水号 Y 'amount': '10', # 支付单金额,单位为元,精度最多小数点后两位(如果是JPY和KRW,单位为分) Y 'currency': 'HKD', # 支付单结算币种 'product_info': 'test', # 商品信息 'client_ip': '127.0.0.1', # 客户端设备IP地址 'notify_url': 'your_notify_url', # 异步通知地址 } print 'out_trade_id is {0}'.format(out_trade_id) # is_cny 是否采用人民币(CNY)计价,取值"TRUE"/"FALSE",默认值为"FALSE" wechat_cn = WechatCn(is_cny=False) wechat_cn.consumer_scan_web(params)
# -*- coding: utf-8 -*- from kernel.api.wechat_cn import WechatCn if __name__ == '__main__': params = { 'out_trade_id': 'your_trade_id', # 商户交易流水号 Y 'amount': '10', # 支付单金额,单位为元,精度最多小数点后两位(如果是JPY和KRW,单位为分) Y 'currency': 'HKD', # 支付单结算币种 'product_info': 'test', # 商品信息 'client_ip': '127.0.0.1', # 客户端设备IP地址 'notify_url': 'your_notify_url', # 异步通知地址 } # is_cny 是否采用人民币(CNY)计价,取值"TRUE"/"FALSE",默认值为"FALSE" wechat_cn = WechatCn(is_cny=False) wechat_cn.consumer_scan_device(params)
# -*- coding: utf-8 -*- from config import MERCHANT_APPID from kernel.api.wechat_cn import WechatCn if __name__ == '__main__': ''' 第一步 / 请求预支付接口 ''' params = { 'out_trade_id': 'your_trade_id', # 商户交易流水号 Y 'amount': '1', # 支付单金额,单位为元,精度最多小数点后两位(如果是JPY和KRW,单位为分) Y 'currency': 'HKD', # 结算币种 Y 'product_info': 'test product', # 商品信息 Y 'appid': MERCHANT_APPID, # 微信开放平台分配的appid Y 'client_ip': 'test_agent_order_id', # 客户端设备IP地址 Y 'notify_url': 'test_product_id', # 异步通知地址 N } # is_cny 是否采用人民币(CNY)计价,取值"TRUE"/"FALSE",默认值为"FALSE" wechat_cn = WechatCn(is_cny=False) wechat_cn.app_pay(params) ''' 第二步 / 调用微信支付SDK ''' ''' 第三步 / 获取订单状态 '''
# -*- coding: utf-8 -*- from config import MERCHANT_NO from kernel.api.wechat_cn import WechatCn if __name__ == '__main__': params = { 'merchant_no': MERCHANT_NO, 'start_date': '20190101', 'end_date': '20190120', } wechat_cn = WechatCn() wechat_cn.get_bill(params)
# -*- coding: utf-8 -*- from config import MERCHANT_MINI_APPID, MERCHANT_NO from kernel.api.wechat_cn import WechatCn if __name__ == '__main__': ''' 第一步 获取用户登录凭证 ''' ''' 第二步 获取openid ''' ''' 第三步 下单,调用下列接口,传入参数 ''' params = { 'merchant_no': MERCHANT_NO, # 商户号 Y 'out_trade_id': 'your_trande_id', # 商户交易流水号 Y 'amount': '1', # 支付单金额,单位为元,精度最多小数点后两位(如果是JPY和KRW,单位为分) Y 'currency': 'HKD', # 支付单结算币种 'product_info': 'test product', # 商品信息 'appid': MERCHANT_MINI_APPID, # 微信appid 'openid': 'user_openid', # 用户openid 'client_ip': 'client_ip', # 客户端设备IP地址 'notify_url': 'your_notify_url', # 异步通知地址 } # is_cny 是否采用人民币(CNY)计价,取值"TRUE"/"FALSE",默认值为"FALSE" wechat_cn = WechatCn(is_cny=False) wechat_cn.mini_program_pay(params)
# -*- coding: utf-8 -*- from kernel.api.wechat_cn import WechatCn if __name__ == '__main__': params = { 'payment_no': 'hp_payment_no', # 支付单号 N 'out_trade_id': 'your_trade_id', # 商户交易流水号 N } wechat_cn = WechatCn() wechat_cn.get_payment(params)
# -*- coding: utf-8 -*- from kernel.api.wechat_cn import WechatCn if __name__ == '__main__': params = { 'out_trade_id': 'your_trade_id777', # 商户交易流水号 Y 'amount': '0.1', # 支付单金额,单位为元,精度最多小数点后两位(如果是JPY和KRW,单位为分) Y 'currency': 'HKD', # 支付单结算币种 Y 'auth_code': 'consumer_auth_code', # 二维码内容 Y 'product_info': 'test', # 商品信息 Y 'client_ip': '0.0.0.0', # 客户端设备IP地址 Y # 'notify_url': '', # 异步通知地址 N } # is_cny 是否采用人民币(CNY)计价,取值"TRUE"/"FALSE",默认值为"FALSE" wechat_cn = WechatCn(is_cny=False) wechat_cn.merchant_scan_consumer(params)
# -*- coding: utf-8 -*- from kernel.api.wechat_cn import WechatCn if __name__ == '__main__': params = { 'refund_no': 'hp_refund_no', # 退款单号,和out_refund_id不可同时为空 'out_refund_id': 'your_refund_id', # 外部退款单号,和refund_no不可同时为空 } wechat_cn = WechatCn() wechat_cn.get_refund(params)
# -*- coding: utf-8 -*- from kernel.api.wechat_cn import WechatCn if __name__ == '__main__': params = { 'currency': 'HKD', # 币种 是 } wechat_cn = WechatCn() wechat_cn.get_rate(params)
# -*- coding: utf-8 -*- from kernel.api.wechat_cn import WechatCn if __name__ == '__main__': params = { 'out_trade_id': 'your_trade_id', # 商户交易流水号 Y 'amount': '10', # 支付单金额,单位为元,精度最多小数点后两位(如果是JPY和KRW,单位为分) Y 'currency': 'HKD', # 支付单结算币种 'product_info': 'test', # 商品信息 'client_ip': '127.0.0.1', # 客户端设备IP地址 'notify_url': 'your_notify_url', # 异步通知地址 } # is_cny 是否采用人民币(CNY)计价,取值"TRUE"/"FALSE",默认值为"FALSE" wechat_cn = WechatCn(is_cny=False) wechat_cn.consumer_scan_web(params)
# -*- coding: utf-8 -*- from kernel.api.wechat_cn import WechatCn if __name__ == '__main__': params = { 'payment_no': 'hp_payment_no', # 支付单号 N 'out_refund_id': 'your_refund_id', # 外部退款单号 N 'refund_amount': '100', # 退款金额。传入此参数,可发起多次退款,退款总额不超过订单金额;不传此参数则是全额退款; } wechat_cn = WechatCn() wechat_cn.refund(params)