博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaEE 微信支付
阅读量:5789 次
发布时间:2019-06-18

本文共 2057 字,大约阅读时间需要 6 分钟。

微信境内支付包括:

  • App支付
  • 公众号支付
  • 小程序支付
  • H5 支付
  • 扫码支付
  • 刷卡支付

除刷卡支付场景以外,商户系统先调用该接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易回话标识后再按扫码、JSAPI、APP等不同场景生成交易串调起支付。

1. 常用API 列表

  1. 统一下单(提交刷卡支付)
  2. 查询订单
  3. 关闭订单
  4. 申请退款
  5. 查询退款
  6. 下载对账账单
  7. 下载资金账单
  8. 支付结果通知
  9. 退款结果通知

2. 微信支付接口请求大致流程

  1. 封装请求参数
  2. 将请求参数进行sort()
  3. 对排序好的参数进行trim()
  4. 将参数拼接为正确顺序的uri并加入key(秘钥)到最后
  5. 将uri进行签名得到sign
  6. 将参数以及sign(排除秘钥)按顺序转为xml
  7. 请求对应接口(统一下单等)
  8. 响应时也是xml格式
  9. 转换xml为Map格式
  10. 校验returnCode和resultCode

3. 常用API中的区别点

3.1 刷卡支付

1.下单非统一下单,而是提交刷卡支付,即请求的url和其他几种都不同。

  • 刷卡请求url:https://api.mch.weixin.qq.com/pay/micropay
  • 其他统一下单url:https://api.mch.weixin.qq.com/pay/unifiedorde

2.提交刷卡支付参数中不能携带参数有以下:(其他类型支付均可)。

名称 变量名 必填 类型 示例值 描述
交易类型 trade_type String(16) JSAPI JSAPI 公众号支付 NATIVE 扫码支付 APP APP支付
用户标识 openid String(128) oUpF8uMuAJO_M2pxb1Q9zNjWeS6o trade_type=JSAPI时(即公众号支付),此参数必传,此参数为微信用户在商户对应appid下的唯一标识。openid如何获取,可参考【获取openid】。企业号请使用【企业号OAuth2.0接口】获取企业号内成员userid,再调用【企业号userid转openid接口】进行转换
通知地址 notify_url String(256) http://www.weixin.qq.com/wxpay/pay.php 异步接收微信支付结果通知的回调地址,通知url必须为外网可访问的url,不能携带参数。

3.2 授权码

提交刷卡支接口需要:auth_code.

名称 变量名 必填 类型 示例值 描述
授权码 auth_code String(128) 120061098828009406 扫码支付授权码,设备读取用户微信中的条码或者二维码信息(注:用户刷卡条形码规则:18位纯数字,以10、11、12、13、14、15开头)

3.3 H5支付

注⚠️:提醒:H5支付不建议在APP端使用,如需要在APP中使用微信支付,请接APP支付

名称 变量名 必填 类型 示例值 描述
场景信息 scene_info String(256)
  1. 示例值
//IOS移动应用{
"h5_info": {
"type":"IOS","app_name": "王者荣耀","bundle_id": "com.tencent.wzryIOS"}}//安卓移动应用{
"h5_info": {
"type":"Android","app_name": "王者荣耀","package_name": "com.tencent.tmgp.sgame"}}//WAP网站应用{
"h5_info": {
"type":"Wap","wap_url": "https://pay.qq.com","wap_name": "腾讯充值"}} 该字段用于上报支付的场景信息,针对H5支付有以下三种场景,请根据对应场景上报,H5支付不建议在APP端使用,针对场景1,2请接入APP支付,不然可能会出现兼容性问题复制代码
  1. 描述.

1,IOS移动应用

{"h5_info": //h5支付固定传"h5_info"    {"type": "",  //场景类型     "app_name": "",  //应用名     "bundle_id": ""  //bundle_id     }}复制代码

2,安卓移动应用

{"h5_info": //h5支付固定传"h5_info"    {"type": "",  //场景类型     "app_name": "",  //应用名     "package_name": ""  //包名     }}复制代码

3,WAP网站应用

{"h5_info": //h5支付固定传"h5_info"   {"type": "",  //场景类型    "wap_url": "",//WAP网站URL地址    "wap_name": ""  //WAP 网站名    }}复制代码

4. 微信境外支付

转载地址:http://lemyx.baihongyu.com/

你可能感兴趣的文章
统计数据库大小
查看>>
第十六章:脚本化HTTP
查看>>
EXCEL表中如何让数值变成万元或亿元
查看>>
L104
查看>>
用javascript获取地址栏参数
查看>>
一起谈.NET技术,你应该知道的15个Silverlight诀窍
查看>>
商教助手!解析夏普液晶高清宽屏投影机系列
查看>>
云南去年有望实现151万贫困人口净脱贫
查看>>
Java架构师面试题系列整理(大全)
查看>>
延伸产业链 中国产粮大省向“精深”问发展
查看>>
消费贷用户70%月收入低于5000元 80、90后是主要人群
查看>>
2018年内蒙古外贸首次突破1000亿元
查看>>
CTOR有助于BCH石墨烯技术更上一层楼
查看>>
被遗忘的CSS
查看>>
Webpack中的sourcemap以及如何在生产和开发环境中合理的设置sourcemap的类型
查看>>
做完小程序项目、老板给我加了6k薪资~
查看>>
java工程师linux命令,这篇文章就够了
查看>>
关于React生命周期的学习
查看>>
webpack雪碧图生成
查看>>
搭建智能合约开发环境Remix IDE及使用
查看>>