微信H5支付开发日志

本文写于 2018-03-28

1. 参考微信官方流程

参考:https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4

2. 准备资源

  • 注册申请(略)成功后可以拿到和设置的信息。
    你需要准备的东西:(4样!)
  1. 公众账号ID (Appid)

  2. 公众号商户号 (mch_id)

  3. apisign key API密钥 (签名时要用!)
    设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置。

    API密钥.png

    我用md5命令生成:
    echo -n "mySignKey" | md5

  4. H5 支付域名(只需要配置顶级域名)
    产品中心->我的产品->H5支付->开发配置->支付配置->H5支付域名


    H5支付域名.png

3. 开发流程

流程有点多。其实总结起来就是一句话。用户点击你提供的链接,把钱给微信,微信异步通知公众号(你),公众号(你)接到通知处理后给用户反馈。

简单流程.png


注意,这里涉及三个角色。

  • 用户
  • 微信支付平台
  • 公众号开发人员(你!)


你的开发任务就在于这样一个场景:
用户已经在微信旁边等你的页面了,微信也等着你发下单请求。

你(公众号)的开发细节总览:

  1. 提供页面给用户点击支付。
    地址如下: http://pay.yourdomain.com/order/pay?userId=9527

  2. 用户点击之后,你的后台要生成一个预支付的的订单,发给微信统一下单API。
    参考统一下单:https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=9_20&index=1
    预支付订单格式如下:

<xml>
<appid>wx2421b1c4370ec43b</appid>
<attach>附加数据</attach>
<body>H5支付测试</body>
<mch_id>10000100</mch_id>
<nonce_str>1add1a30ac87aa2db72f57a2375d8fec</nonce_str>
<notify_url>http://wxpay.wxutil.com/pub_v2/pay/notify.v2.php</notify_url>
<openid>oUpF8uMuAJO_M2pxb1Q9zNjWeS6o</openid>
<spbill_create_ip>14.23.150.211</spbill_create_ip>
<total_fee>1</total_fee>
<trade_type>MWEB</trade_type>
<scene_info>{"h5_info": {"type":"IOS","app_name": "王者荣耀","package_name": "com.tencent.tmgp.sgame"}}</scene_info>
<sign>0CB01533B8C1EF103065174F50BCA001</sign>
</xml>

这里需要注意的是:
2.1 scene_info 中的wap_url 域名必须和上文中准备的H5支付域名匹配。(否则报错: 商家存在未配置的参数,请联系商家解决)
2.2 sgin 签名是计算出来的。用的是上文准备好的API密钥。计算错误是无法下单成功的。(参考这里https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=4_3
2.3 spbill_create_ip的ip要正确的获取。(否则报错:网络环境未能通过安全验证,请稍后再试)
2.4 通知地址要设置一个能访问且能处理的地址,用来处理微信回调。(要不然你怎么知道充值成功了呢!)

  1. 微信通过验证后会给你一个包含支付地址信息给你
    支付地址格式如下:
<xml>
   <return_code><![CDATA[SUCCESS]]></return_code>
   <return_msg><![CDATA[OK]]></return_msg>
   <appid><![CDATA[wx2421b1c4370ec43b]]></appid>
   <mch_id><![CDATA[10000100]]></mch_id>
   <nonce_str><![CDATA[IITRi8Iabbblz1Jc]]></nonce_str>
   <sign><![CDATA[7921E432F65EB8ED0CE9755F0E86D72F]]></sign>
   <result_code><![CDATA[SUCCESS]]></result_code>
   <prepay_id><![CDATA[wx201411101639507cbf6ffd8b0779950874]]></prepay_id>
   <trade_type><![CDATA[MWEB]]></trade_type>
   <mweb_url><![CDATA[https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx2016121516420242444321ca0631331346&package=1405458241]]></mweb_url>
</xml>
  1. 你的后台会接收支付信息,把"mweb_url"对应的地址发给用户,用户点击之后直接跳转到微信。
    用户点击 mweb_url 对应的地址,就能跳转微信。

  2. 用户进入微信,输入支付密码。支付成功。微信会通知公众号(你)。
    也就是步骤2中你配置的notify_url。接收到的是一个XML。

  3. 你拿到通知。最好应该再去微信查询这个订单。验证订单的真伪。
    参考查询订单:https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=9_2&index=2
    也是要用API秘钥签名的。基本没啥难度了。

  4. 如果订单是真的,表示钱到账了,准备发货给用户吧。

9.流程结束。

PS:
1.隐去很多小细节。坑算是比较少的,跟着错误提示来调试即可。
2.只是记录。写的不完整。

代码参考:
GitHub: (后面再补!)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,961评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,444评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,009评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,082评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,101评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,271评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,738评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,395评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,539评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,434评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,481评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,160评论 3 317
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,749评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,816评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,038评论 1 256
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,548评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,140评论 2 341

推荐阅读更多精彩内容

  • 关于微信支付 生活中的微信支付 目前我们日常生活中接触得比较多的线上电子支付方式主要有两种,一种是支付宝,另一种就...
    积_渐阅读 3,907评论 3 26
  • 本篇文件来聊聊微信服务商模式以及商户模式下微信H5支付 先说一个事情。8月1号开始微信公众平台支付的开发配置页面迁...
    Javen205阅读 21,831评论 13 23
  • 我们走着一条没有尽头的路,伴随着孤独与寂寥. 偌大的宇宙洪荒悄然运转着,生活在尘埃一般的世界,渺小的我们更加无能为...
    何言初日阅读 239评论 0 1
  • 《我滴个神啊》感悟 信仰,宗教。一直以来以为信仰是个褒义词,是人们追求美好的方式,然而这部电影让我对信仰有了重新的...
    6Day阅读 357评论 0 0
  • 妖王出世 大海乌浪翻滚,水晶宫一阵震荡,砰的一声,一扇石门爆破而开,一条八爪章鱼疾射而出。 金...
    空中的梨子阅读 655评论 7 7