找回密码
 立即注册

QQ登录

只需一步,快速开始

[工具插件] 一个用Python实现的轻量级微信小程序支付包,为了更方便...

[复制链接]
查看: 227|回复: 102
最佳答案
0 

3

主题

4

帖子

90

积分

新人求带

积分
90
 楼主| 发表于 2018-11-8 14:39:01 | 显示全部楼层 |阅读模式
一个用Python实现的轻量级微信小程序支付包,为了更方便地使用小程序支付功能。

python版本: python3
  1. import minipay

  2. # 统一下单
  3. unified = minipay.UnifiedOrder()

  4. # 成功时,response为微信响应的数据,否则为unified.error
  5. # unified.error包含两个键,分别是 'code' and 'desc',他们的值从响应中提取
  6. response = unified.request()

  7. # 查询业务是否成功
  8. print(unified.is_success)
  9. # 查询业务是否失败
  10. print(unified.is_fail)
  11. # 查询错误信息
  12. print(unified.error)

  13. # 订单查询
  14. # 使用这个接口,你可以很方便的查询在你小程序下的所有订单
  15. # 调用的方法只需要输入订单号

  16. out_trade_no = 'abv2010102333112'
  17. query = minipay.OrderQuery(out_trade_no=out_trade_no)
  18. response = query.request()
  19. if query.is_success:
  20.     print(response)
  21.     print(query.response_data)
  22. else:
  23.     print(query.error)
  24.     print(response)


  25. # 申请退款
  26. # 使用这个来退款,用法都是一样的
  27. # 它有一些必须参数
  28. refund_fee = 10
  29. total_fee = 20
  30. refund = minipay.Refund(
  31.     out_trade_no=out_trade_no,
  32.     total_fee=total_fee,
  33.     refund_fee=refund_fee
  34.     )
  35. response = refund.request()
  36. ...

  37. # 退款查询
  38. minipay.RefundQuery()

  39. # 支付通知处理
  40. # 微信发过来的是XML格式的数据,直接丢进类里面处理即可
  41. # django 示例
  42. from django.http import HttpResponse
  43. from models.models import PayNotice
  44. def payment_notification(request):
  45.     notice = minipay.PaymentNotification(
  46.     data=request.body,
  47.     model=PayNotice,
  48.     mode='store'
  49.     )
  50.     # response 是用来返回给微信的信息,一个XML格式的数据
  51.     response = notice.handle()
  52.     return HttpResponse(response, content_type='application/xml')
  53.    
  54. #退款通知
  55. # 用法和支付通知一样
  56. minipay.RefundNotification()
复制代码

将minipay目录下的minipay包复制到你的项目中即可。

2. 使用示例

  1. import minipay

  2. # 统一下单
  3. # 必传参数
  4. # out_trade_no
  5. # openid
  6. # body
  7. # total_fee
  8. unified = minipay.UnifiedOrder(
  9.     out_trade_no=123123132,
  10.     openid='mock openid',
  11.     body='商品描述',
  12.     total_fee=100
  13. )
  14. # 发起请求
  15. response = unified.request()
  16. # 根据 is_fail 或 is_success 判断业务是否成功
  17. # unified.request()会返回一个响应
  18. # if is fail,返回的是unified.error
  19. # if is success,返回的是unified.response_data
  20. # 不管是unified.error 还是unified.response_data
  21. # 都是一个dict类型,其中unified.response_data包含了微信小程序返回的所有参数

  22. if unified.is_fail:
  23.     print(unified.error['code'], unified.error['desc'])
  24.     print(response.get('code'), response.get('desc'))
  25. elif unified.is_success:
  26.     print(unified.response_data)
  27.     print(response)


  28. data = dict(out_trade_no=123123132,openid='mock openid',body='商品描述',total_fee=100)

  29. unified = minipay.UnifiedOrder(**data)
  30. response = unified.request()
  31. if unified.is_fail:
  32.     print(unified.error['code'], unified.error['desc'])
  33. else:
  34.     print(unified.response_data)
复制代码

minipay-master.zip (44.97 KB, 下载次数: 7)
回复

使用道具 举报

最佳答案
0 

0

主题

4459

帖子

5237

积分

S1

积分
5237
发表于 2018-11-8 15:44:45 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2018-11-8 17:07:24 | 显示全部楼层
新人学习学习
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

4459

帖子

5237

积分

S1

积分
5237
发表于 2018-11-9 04:28:47 | 显示全部楼层
谢谢分享
回复

使用道具 举报

最佳答案
0 

0

主题

774

帖子

580

积分

等待验证会员

积分
580
发表于 2018-11-9 09:59:05 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

645

帖子

310

积分

等待验证会员

积分
310
发表于 2018-11-9 11:03:24 | 显示全部楼层
谢谢楼主分享~~~
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

73

帖子

70

积分

等待验证会员

积分
70
发表于 2018-11-9 16:18:25 | 显示全部楼层
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

73

帖子

70

积分

等待验证会员

积分
70
发表于 2018-11-9 16:18:29 | 显示全部楼层
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

73

帖子

70

积分

等待验证会员

积分
70
发表于 2018-11-9 16:18:33 | 显示全部楼层
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

73

帖子

70

积分

等待验证会员

积分
70
发表于 2018-11-9 16:18:36 | 显示全部楼层
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



www.henkuai.com—微信开发者的分享交流平台,专注微信开发生态。

天津市滨海新区
中新生态城中成大道生态建设公寓9号楼3层301

微信公众号

广告推广
QQ:805874290

市场合作
zhongcong@henkuai.com