微信app支付

支付商品分为好几类:

1. 会员充值: member

2. 试卷: paper

3. 叶子节点,一键组卷: leaf

4. 整棵树,一键下载: tree

所以要设计一个支付类型

订单半个小时内有效, 过期作废

redis的key如何构成:

手机号+类型+产品id

手机号11位

类型2位

产品id分为好几种:

tag

bbs讨论了下,多数人觉得每个prepay_id都必须入库

pay.开头的weixin网站, 进去, 点击商户平台, 产品中心, 可以看到已经开通的所有支付方式, 真操蛋。

微信开放平台,app接入微信支付开放接口的申请入口,open.weixin.qq.com

商户证书,我们后台服务器和微信服务器通过新的凭据

trade_type:

JSAPI,NATIVE,APP

货币类型:CNY

交易金额:接口中参数支付金额单位为分,对账单中交易金额单位为元

body字段格式:

使用场景                     支付模式               商品字段规则                                                           样例

第三方APPAPP支付应用市场上的APP名字-商品概述天天爱消除-游戏充值

银行类型:

字符型银行编码                                                                      银行名称

CMB_DEBIT招商银行(借记卡)
CMB_CREDIT招商银行(信用卡)

签名类型: MD5

校验方式:XML

搭建HTTPS,参考:

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=10_4

后台需要提供给app的接口:

1. 请求生产支付订单

需要知道:

a. 支付类型,是微信还是支付宝

b. 产品编码,是包月,包季,还是包年

 

2. 支付完成后,后台查询实际支付结果

后台需要调用微信支付的api:

1. 统一下单API:/pay/unifiedorder

2. 调用微信查询API查询支付结果:/pay/orderquery

3. 调用关单接口:/pay/closeorder

后台需要提供给微信的接口:

1. 接受微信的通知,此通知包含支付结果

后台自己需要具备的功能:

1. 生成带签名的客户端支付信息

2. 接收和保存支付通知

在正式上线微信支付前还需要做接入验收

APPID

商户号:

 

Http响应协议包含status code, header, body

 

PC网站支付:

单位分,对账单单位元,参数值不能带小数

trade_type: NATIVE

CNY

时间为标准北京时间

时间戳:自1970年1月1日0点0分0秒以来的秒数, 10位数字

商户订单号:

支持字母,数字,中划线,下划线, 竖线,星号, 半角字符, 根据当前系统时间加随机序列生成订单号

body字段:

xx教育-会员充值

8. 银行类型:

CMB_DEBIT  借记卡

CMB_CREDIT  信用卡

协议规则, 采用HTTPS

POST方法提交

UTF-8

MD5/HMAC-SHA256

请求和接收数据均需要校验签名

先判断协议字段, 再业务, 再判断交易状态

签名算法

1. 字母顺序排序, key1=value1&key2=value2...======> stringA

2. 从微信返回的对象, 微信方传送的sign参数不参与签名, 将我们自己平台计算的签名和微信的签名作教研

3. 在2得到的stringA拼接上key得到stringSignTemp

4. 对stringSignTemp做MD5

5. 将4得到的串所有字符转化为大写

6. key可以看代码Global

涉及到的文件:app\web\rest\util\HDUtility

app\settings\Global

LearnOrderResource

展示二维码开始, 每隔2秒钟查询一下后台服务器, 知道60秒结束

涉及多线程问题,一边是微信什么时候调用回调函数, 一边是我们的前端不停的轮询。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

novodexx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值