1、后台有商城项目,微信H5商城需要使用微信支付。支付【参考笔记1??】方案只支持微信外的h5,无法操作微信内打开的h5页面,所以我们最终采用了jsapi的方式来进行微信内的H5支付方案。三、JSAPI支付介绍【参考备注2??】流程商户系统与微信支付系统的主要交互:1、商户服务器调用统一下单接口请求下单。api参见公共api【统一下单API】2.商户服务器接收支付通知,api参见公共api【支付结果通知API】3.商户服务器查询支付结果,api参见publicapi[查询订单API]4.微信支付下单和消息通知微信支付jsapi,我没有使用官方demo,自己实现了一套文档,直接找了overtrueeasywechatcomposer包来携带out,因为都打包好了。简单来说分为三步1.获取openid2.微信下单获取参考码链接3.获取微信退货信息/手动查询微信下单的订单状态。支付回调信息参考代码如下//微信下单参考代码useEasyWeChat\Factory;$config=[//必要的配置'app_id'=>'xxxx','mch_id'=>'your-mch-id','key'=>'key-for-signature',//APIkey//如果需要使用敏感接口(如退款、发红包等),需配置API证书路径(登录商户平台下载API证书)'cert_path'=>'path/to/your/cert.pem',//XXX:绝对路径!!!!'key_path'=>'path/to/your/key',//XXX:绝对路径!!!!'notify_url'=>'默认订单回调地址',//也可以在下单时单独设置覆盖];$app=Factory::payment($config);$result=$app->order->unify(['body'=>'腾讯充值中心-QQ会员充值','out_trade_no'=>'20150806125346','total_fee'=>88,'spbill_create_ip'=>'123.12.12.123',//可选,不传该参数,SDK会自动获取对应IP地址'notify_url'=>'https://pay.weixin.qq.com/wxpay/pay.action',//支付结果通知URL,不设置则使用配置中的默认地址'trade_type'=>'JSAPI',//请替换为您对应的值类型付款方式'openid'=>'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',]);=====================================================================//回调通知$app=Factory::payment($config);$response=$app->handlePaidNotify(function($message,$fail){//你的逻辑返回真;//或错误消息$fail('Ordernotexists.');});$响应->发送();//在Laravel中请使用:return$response;5.References/remarks/references1??:微信支付接口签名验证工具https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=20_1references2??:官方SDK和DEMO下载https:///pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1备注1??:微信外H5支付方案:https://pay.weixin。qq.com/wiki/doc/api/H5.php?chapter=15_4H5支付是指商户在微信客户端外的移动网页展示商品或服务。当用户在上述页面确认使用微信支付时,商户发起调用该服务。启动微信客户端进行支付主要用于触屏版手机浏览器请求微信支付的场景,可以方便的从外部浏览器调用微信支付备注2??:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_4坑1??:在使用微信支付签名验证工具通过xml验证并正确配置APPID、MCHID、KEY、APPSECRET时,可以解决大部分“签名错误”。不行,重新设置KEY(商户支付密钥),即使重新设置的和之前的KEY一模一样,但是能用。
