JavaEE 微信支付
发布日期:2021-08-25 15:35:19 浏览次数:3 分类:技术文章

本文共 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. 微信境外支付

转载地址:https://blog.csdn.net/weixin_33858336/article/details/88000954 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:从自定义Annotation、APT、JavaPoet再到Butterknife原理
下一篇:[译] CSS Grid 之列宽自适应:`auto-fill` vs `auto-fit`

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2023年06月04日 09时14分46秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

最新文章