payjs教程_jsapi和native支付的区别

payjs教程_jsapi和native支付的区别frompayjsimportPayJS#也可根据个人习惯选择使用Payjs/PAYJS/payjsfrompayjsimportPayJSNotify#也可根据个人习惯选择使用

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

from payjs import PayJS # 也可根据个人习惯选择使用 Payjs/PAYJS/payjs
from payjs import PayJSNotify # 也可根据个人习惯选择使用 PayjsNotify/PAYJSNotify

MCHID = '这里是商户号'
KEY = '这里是商户密钥'

# 初始化
p = PayJS(MCHID, KEY)

# 扫码支付
OUT_TRADE_NO = '2017TEST' # 外部订单号(自己的支付系统的订单号,请保证唯一)
TOTAL_FEE = 1 # 支付金额,单位为分,金额最低 0.01 元最多 10000 元
BODY = '测试支付' # 订单标题
NOTIFY_URL = 'https://pay.singee.site/empty/' # Notify 网址
ATTACH = 'info' # Notify 内容
r = p.QRPay(out_trade_no=OUT_TRADE_NO, total_fee=TOTAL_FEE, body=BODY, notify_url=NOTIFY_URL, attach=ATTACH)
if r:
print(r.code_url) # 二维码地址(weixin:// 开头,请使用此地址构建二维码)
print(r.qrcode) # 二维码地址(https:// 开头,为二维码图片的地址)
print(r.payjs_order_id) # 订单号(PAYJS 的)
else:
print(r.STATUS_CODE) # HTTP 请求状态码
print(r.ERROR_NO) # 错误码
print(r.error_msg) # 错误信息
print(r)

# 构造收银台支付网址(仅构造链接,请使用浏览器 302 到这个网址,无法预检查调用是否成功)
c = p.get_cashier_url(out_trade_no=OUT_TRADE_NO, total_fee=TOTAL_FEE, body=BODY, callback_url=CALLBACK_URL, notify_url=NOTIFY_URL, attach=ATTACH)
print(c)

# JSApi 支付
OPENID = '这里填写支付用户的 OpenID' # 支付用户在 PayJS 端的 OpenID,可通过 get_openid 获取
j = p.JSApiPay(out_trade_no=OUT_TRADE_NO, total_fee=TOTAL_FEE, openid=OPENID, body=BODY, notify_url=NOTIFY_URL, attach=ATTACH)
if j:
print(j.jsapi) # 用于发起支付的支付参数
else:
print(j.STATUS_CODE) # HTTP 请求状态码
print(j.ERROR_NO) # 错误码
print(j.error_msg) # 错误信息
print(j)

# 刷卡支付
AUTH_CODE = '这里填写用户侧 18 位数字' # 用户的支付条码或二维码所对应的数字
m = p.MicroPay(out_trade_no=OUT_TRADE_NO, total_fee=TOTAL_FEE, auth_code=AUTH_CODE, body=BODY)
print(m)

# 订单查询
s = p.check_status(payjs_order_id=r.payjs_order_id)
if s:
print(s.paid) # 是否已支付
else:
print(s.error_msg) # 错误信息
print(s)

# 订单关闭
t = p.close(r.payjs_order_id)
if t:
print('Success')
else:
print('Error')
print(t.return_msg)

# 订单退款
t = p.refund(r.payjs_order_id)
if t:
print('Success')
else:
print('Error')
print(t.return_msg)

# 获取用户 OpenId
o = p.get_openid(callback_url=CALLBACK_URL)
print(o)

# 回调验证
n = PayJSNotify(KEY, '回调内容(str 或 dict)')
print(n)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167964.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月4日 上午11:16
下一篇 2022年8月4日 上午11:16


相关推荐

  • 遗传算法——matlab实现

    遗传算法——matlab实现遗传算法

    2026年3月17日
    2
  • 单元测试及MockMvc

    单元测试及MockMvc单元测试及 MockMvc 的使用

    2026年3月17日
    2
  • UCOSII系统移植详解「建议收藏」

    UCOSII系统移植详解「建议收藏」一,移植UCOSII操作系统的CPU前提条件1,处理器的C编译器能产生可重入型的代码,如果不行的话,那么就不能在任务之间随意的切换,因为当你切换到别的任务的时候,该任务在这个函数的数据就会被破坏。2,处理器CPU支持中断,并能产生定时中断3,用C语言就可以开关中断,进行任务切换4,处理器CPU能够支持一定数量的数据存储硬件堆栈,也就是栈5,处理器有将堆栈指针以及其他的CPU的寄存器的内容读出,并存储到堆栈或者内存中去的指令。任务切换的时候,需要将当前的CPU指针保存到刚刚执行的任务当中。

    2022年5月4日
    48
  • qq怎样防盗 qq密码如何防盗[通俗易懂]

    qq怎样防盗 qq密码如何防盗[通俗易懂]1.去腾讯申请密码保护,这样如果密码被激活成功教程或自己忘记了还可以利用密码保护功能取回来。2.QQ密码的位数一定要超过8位,而且最好包含数字、字母和特殊符号,否则以现代计算机的超强计算能力,要想暴力激活成功教程你的QQ密码简直是易如反掌。3.不要在QQ中填入真实的年龄、E-mail等敏感消息,更不能告诉任何人,小心行得万年船。4.不要随意运行别人发给你的文件,即便那些看起来很诱人的…

    2022年7月20日
    16
  • C语言如何生成随机数

    C语言如何生成随机数生成10个100以内的随机数废话不多说直接上程序。#include<stdio.h>#include<stdlib.h>#include<time.h>intmain(){intret=0;srand((unsignedint)time(NULL));for(inti=0;i<10;i…

    2022年4月18日
    35
  • die名词_ddr读写时序

    die名词_ddr读写时序ODT是什么鬼?为什么要用ODT?在很多关于DDR3的博文和介绍中都没有将清楚。在查阅了很多资料并仔细阅读DDR3的官方标准(JESD79-3A)之后,总算有点了头绪,下面来整理整理。1、首先ODT是什么?ODT(On-DieTermination),是从DDR2SDRAM时代开始新增的功能。其允许用户通过读写MR1寄存器,来控制DDR3SDRAM中内部的终端电阻的连接或者断开。在DDR…

    2025年10月14日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号