微信支付h5支付(v3)
2016-04-11 17:32
435 查看
摘要: 微信支付中h5支付主要是通过网页授权登录微信,通过微信支付插件支付商品,开发微信支付就是个坑,谁进谁倒霉
最近做一个微信支付,没时间记录,先写个框架在这里,以后再补充
微信支付的订单号只能够提交一次。
微信支付需要的四个基本参数
appid是微信公众账号或开放平台APP的唯一标识,在公众平台申请公众账号或者在开放平台申请APP账号后,微信会自动分配对应的appid,用于标识该应用。可在微信公众平台-->开发者中心查看,商户的微信支付审核通过邮件中也会包含该字段值。
mch_id是商户申请微信支付后,由微信支付分配的商户收款账号。
key交易过程生成签名的密钥,仅保留在商户系统和微信支付后台,不会在网络中传播。商户妥善保管该Key,切勿在网络中传输,不能在其他客户端中存储,保证 key不会被泄漏。商户可根据邮件提示登录微信商户平台进行设置。也可按一下路径设置:微信商户平台(pay.weixin.qq.com)--> 账户设置-->API安全-->密钥设置 ,这个之前的版本中也有,只是改了名字,给微信的客服问,他们也说不出个三七二十来。
AppSecret是APPID对应的接口密码,用于获取接口调用凭证access_token时使用。在微信支付中,先通过OAuth2.0接口获取用户openid,此openid用于微信内网页支付模式下单接口使用。在开发模式中获取AppSecret(成为开发者且帐号没有异常状态)。 这个是自己定义的二十多个字符。
总之,如果这四个参数不加上,微信支付就不能支付。
异步回调通知
统一下单的时候,要接收微信的通知,刚开始以为是接收到微信的通知的时候用户支付的界面才能跳转到成功页面,其实这样的理解不对,应该是后台处理的,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。
微信给发送的xml格式为
这时我们只要给微信返回个
即可
第一个参数必填的,第二个参数是选填的
微信支付退款
最近做一个微信支付,没时间记录,先写个框架在这里,以后再补充
微信支付的订单号只能够提交一次。
微信支付需要的四个基本参数
appid是微信公众账号或开放平台APP的唯一标识,在公众平台申请公众账号或者在开放平台申请APP账号后,微信会自动分配对应的appid,用于标识该应用。可在微信公众平台-->开发者中心查看,商户的微信支付审核通过邮件中也会包含该字段值。
mch_id是商户申请微信支付后,由微信支付分配的商户收款账号。
key交易过程生成签名的密钥,仅保留在商户系统和微信支付后台,不会在网络中传播。商户妥善保管该Key,切勿在网络中传输,不能在其他客户端中存储,保证 key不会被泄漏。商户可根据邮件提示登录微信商户平台进行设置。也可按一下路径设置:微信商户平台(pay.weixin.qq.com)--> 账户设置-->API安全-->密钥设置 ,这个之前的版本中也有,只是改了名字,给微信的客服问,他们也说不出个三七二十来。
AppSecret是APPID对应的接口密码,用于获取接口调用凭证access_token时使用。在微信支付中,先通过OAuth2.0接口获取用户openid,此openid用于微信内网页支付模式下单接口使用。在开发模式中获取AppSecret(成为开发者且帐号没有异常状态)。 这个是自己定义的二十多个字符。
总之,如果这四个参数不加上,微信支付就不能支付。
异步回调通知
统一下单的时候,要接收微信的通知,刚开始以为是接收到微信的通知的时候用户支付的界面才能跳转到成功页面,其实这样的理解不对,应该是后台处理的,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。
微信给发送的xml格式为
<xml> <appid><![CDATA[wx2421b1c4370ec43b]]></appid> <attach><![CDATA[支付测试]]></attach> <bank_type><![CDATA[CFT]]></bank_type> <fee_type><![CDATA[CNY]]></fee_type> <is_subscribe><![CDATA[Y]]></is_subscribe> <mch_id><![CDATA[10000100]]></mch_id> <nonce_str><![CDATA[5d2b6c2a8db53831f7eda20af46e531c]]></nonce_str> <openid><![CDATA[oUpF8uMEb4qRXf22hE3X68TekukE]]></openid> <out_trade_no><![CDATA[1409811653]]></out_trade_no> <result_code><![CDATA[SUCCESS]]></result_code> <return_code><![CDATA[SUCCESS]]></return_code> <sign><![CDATA[B552ED6B279343CB493C5DD0D78AB241]]></sign> <sub_mch_id><![CDATA[10000100]]></sub_mch_id> <time_end><![CDATA[20140903131540]]></time_end> <total_fee>1</total_fee> <trade_type><![CDATA[JSAPI]]></trade_type> <transaction_id><![CDATA[1004400740201409030005092168]]></transaction_id> </xml>
这时我们只要给微信返回个
<xml> <return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg> </xml>
即可
第一个参数必填的,第二个参数是选填的
微信支付退款
相关文章推荐
- 一个检查文件夹下文件大小的小程序
- 向微信公众号发送消息
- 仿微信的语音点击播放时的语音图标动画效果
- java 实现微信搜索附近人功能
- 封装实践——打造微信底部tab栏
- 封装实践——打造微信底部tab栏
- Android Studio debug使用release的签名(微信分享)
- 微信JSSDK页面授权实现类(PHP)
- Android自定义实现微信标题栏
- 微信支付中 素要用到的一些参数
- 微信开发测试小事记
- 关于微信公众号开发【微信JS-SDK】报错:config invalid url domian
- 试客小兵任务具体更新时间
- 仿微信滑动退出
- 想学微信的界面设计,来看看WeUI的暴力美学
- 微信公众平台开发之核心Servlet(二)
- 微信公众平台开发之请求校验类(一)
- 微信H5页面分享
- ***微信公众平台开发: 获取用户基本信息+OAuth2.0网页授权
- 微信公众号的开发之旅(1)