1.微信支付接口PHP的信支金额自定义应该怎么写?
2.PHP微信支付JsApi40163错误
3.ecshop增加pc扫描二维码微信支付功能代码
微信支付接口PHP的金额自定义应该怎么写?
您要做的是微信公众号的扫二维码付款吧,可以客户自定义金额的付源那种。这个是信支需要开发的。
您可以看下发案例,付源可以用户自行输入金额进行付款,信支gitlab源码编译可放在店里给客户支付用。付源书籍源码网站
至于手续费,信支是付源不需要额外支付的,就只要支付腾讯收的信支0.6%。
只是付源开发要收费,国内支付开发机构比较专业的信支是杰客科技 ,你可以找他们在线工作人员帮忙开发下。付源
注:客户付款是信支网页ps 源码直接到微信官方的管理后台。
PHP微信支付JsApi错误
本文将和大家分享一下微信支付JsApi 错误以及解决方案代码。付源
错误:
未定义数组索引:openid 。信支
经过检查发现是 :微信支付授权获取 openId { “errcode”:,“errmsg”:“code been used”,}
原因为:微信支付code 只能使用一次,当第二次重复使用时就会出现此错误。mpc 源码下载
解决相关参考:/content/php/
参考中的方法本人尝试无果,故自己根据原因重写:
经排查发现问题出在:
WxPay.JsApiPay.php中的GetOpenid方法,源码为:
/** * * 通过跳转获取用户的openid,跳转流程如下: * 1、设置自己需要调回的burpsuite 源码分析url及其其他参数,跳转到微信服务器/connect/oauth2/authorize * 2、微信服务处理完成之后会跳转回用户redirect_uri地址,此时会带上一些参数,如:code * * @return 用户的openid */public function GetOpenid(){ //通过code获得openid if (!isset($_GET['code']) ){ //触发微信返回code码 $baseUrl = urlencode('/connect/oauth2/authorize * 2、微信服务处理完成之后会跳转回用户redirect_uri地址,此时会带上一些参数,如:code * * @return 用户的openid */public function GetOpenid(){ //通过code获得openid if (!isset($_GET['code']) ){ //触发微信返回code码 $baseUrl = urlencode('/weixin/weixin.php?order_id='.$order['order_sn']; QRcode::png($pay_url, 'images/image.png', 'L', 8); echo 'img src="images/image.png" /'; 生成一个指向微信支付的手机连接二维码,手机扫描进入
打开申请到的微信支付代码,在上面加入weixin.php define('IN_ECS', true); require('../includes/init.php'); require('../includes/lib_order.php'); $order_id = isset($_GET['order_id']) ? intval($_GET['order_id']) : 0; $order = order_info(0,$order_id); 获取订单信息
手机打开页面调用代码 html head meta /weixin/js_api_call.php'; //=======证书路径设置===================================== //证书路径,注意应该填写绝对路径 const SSLCERT_PATH = '/weixin/WxPayPubHelper/cacert/apiclient_cert.pem'; const SSLKEY_PATH = '/weixin/WxPayPubHelper/cacert/apiclient_key.pem'; //=======异步通知url设置=================================== //异步通知url,商户根据实际开发过程设定 const NOTIFY_URL = '/weixin/notify_url.php'; //=======curl超时设置=================================== //本例程通过curl使用HTTP POST方法,此处可修改其超时时间,默认为秒 const CURL_TIMEOUT = ; } ? 根据申请的信息填写
找到notify_url.php文件 上面添加 define('IN_ECS', true); require('../includes/init.php'); require('../includes/lib_payment.php'); 调用订单信息
notify_url.php添加支付后修改订单状态 if($notify-checkSign() == TRUE) { if ($notify-data["return_code"] == "FAIL") { //此处应该更新一下订单状态,商户自行增删操作 //$log_-log_result($log_name,"通信出错:\n".$xml."\n"); } elseif($notify-data["result_code"] == "FAIL"){ //此处应该更新一下订单状态,商户自行增删操作 //$log_-log_result($log_name,"业务出错:\n".$xml."\n"); } else{ //此处应该更新一下订单状态,商户自行增删操作 //$log_-log_result($log_name,"支付成功:\n".$xml."\n"); $order = $notify-getData(); $log_id=get_order_id_by_sn($order["out_trade_no"]); order_paid($log_id); } //商户自行增加处理流程, //例如:更新订单状态 //例如:数据库操作 //例如:推送支付完成信息 }
更多安全信息和详细信息就不列举了