一、 微信支付流程
1、目前公司是需要开发网站pc及wap端支付,由于微信不支持微信浏览器外支付,因此本次开发要选用扫码支付(PC)和微信公众号支付(JSAPI支付)
扫码支付采用模式2 只需公众号开通微信支付即可实现支付,先调用统一下单接口,在接口中设置回调URL,用于微信回调通知,以便实现支付 后订单操作,扫码支付用户点
击微信支付按钮,页面跳转到支付二维码页面,用户使用微信扫描二维码即可完成支付。
JSAPI 公众号支付 需要公众号开通微信支付,并设置网页授权域名,用于获取用户的openID,JSAPI支付必须有openID参数,同时还要设置好微信支付授权目录 支付函数必须
在该目录下才能调起微信支付。
2、开发前准备工作: 开通微信商户号 需要用到商户号用于收款、企业公众号(公众号APPID、公众帐号secert) 、在商户号里设置商户支付密钥
微信支付授权目录(是指你支付方法路径,我这里是index方法 所以只要写到wxpay控制器这一步就可以了) https://pay.xxxxxxx.cn/wxpay/
授权域名 http://pay.xxxxxx.cn
3、配置和流程搞清楚后我们现在进入开发,我们公司使用的PHP开发语言,因此在微信支付开发文档接口下载PHP微信支付开发demo 下载地址 :
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 安装demo的方法封装下方法基本就可以测试通过了,下面说说开发中遇到的问题吧
1. php高版本不支持 $GLOBALS["HTTP_RAW_POST_DATA"] 需改用 file_get_contents('php://input')获取xml数据
2、本地报 CURL 60 错误时 ,更改wxpay.Api.php里 postXmlCurl方法里 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch,
CURLOPT_SSL_VERIFYHOST, FALSE); //将之前的严格校验改为FALSE 正 式环境貌似没这问题 如果没这问题可以不用改
3、退款操作时 CURL 报58错误时,该错误为证书路径错误 需更改证书密钥的路径,路径必须为绝对路径