wxpay

微信h5支付/jsapi支付/小程序支付

廉价感情. 提交于 2021-01-24 12:47:32
一. 介绍------------------------------------------------------------------ 微信支付官方开发文档: https://pay.weixin.qq.com/wiki/doc/api/index.html 二.配置 下面俺 就来讲讲 常用的三种微信支付, 当然!! 首先你要去微信平台 配置在微信商户平台(pay.weixin.qq.com)设置您的JSAPI支付支付目录 h5支付 等等!! ( 例子jsapi 官方地址 开发步骤: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_3 ) 下图👇 三.常用的三种支付 详解 ( jsapi支付(微信内部浏览器) / 小程序支付 / h5支付 ( 微信外部浏览器 ) !! ) 1.小程序支付 (很简单, 环境====> 微信 环境) 首先 调用 后台下单接口, 下单成功之后 会返回 支付的参数            // res:{ // appid: "wxXXXXX" // error: "00" // msg: "下单成功" // nonceStr: "xxxxx" // orderNum: "20191102150216" // package: "prepay_id=wx33333333" //

微信支付(微信公众号支付) [记录]

☆樱花仙子☆ 提交于 2021-01-13 19:02:51
后台   先获取code code有效5min      public string GetCodeUrl(string Appid, string redirect_uri)      {    return string.Format( " https://open.weixin.qq.com/connect/oauth2/authorize?appid= {0}&redirect_uri={1}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect" , Appid, redirect_uri);      }       url 接口(接收code方法地址***/a/b)   通过code获取token       access_token       公众号调用各接口时都需使用access_token   通过token 生成 预支付订单 文档代码: function onBridgeReady(){ WeixinJSBridge.invoke( 'getBrandWCPayRequest' , { "appId":"wx2421b1c4370ec43b", // 公众号名称,由商户传入 "timeStamp":"1395712654", // 时间戳,自1970年以来的秒数 "nonceStr"

小程序用webview内嵌h5页面,实现分享、微信支付功能 , h5传参跳转web-view 微信小程序

匆匆过客 提交于 2020-12-03 11:32:12
小程序用webview内嵌h5页面,实现分享、微信支付功能 。h5传参跳转web-view 微信小程序 前几天公司头目给了我个任务 ,用小程序的web view组件来嵌入h5页面 还要实现小程序右上角的分享功能 ,最重要的是调用微信支付(小程序中不能使用之前在浏览器中配置的支付功能,只能调用小程序专属的api进行支付。) 接到到这个任务,内心还是很开心的,因为…我爱学习啊啊啊。话不多说,进入正题。 web-view :承载网页的容器。会自动铺满整个小程序页面,个人类型的小程序暂不支持使用 它有三个比较重要的属性 src bindmessage bindload 。 web view详情链接 先说说整体思路吧 小程序只要有三个页面就够了 1.小程序启动时默认打开的页面 2.小程序点击右上角分享 的页面 3.webview嵌入的h5页面 当发起支付时会跳转到wxpay页面 ,调用微信支付 乍一看挺简单的 实际也不是太难,只是当时爬的坑比较多 结尾的时候会总结坑点。 实现步骤: 先在web view里引入H5页面 此步骤比较简单 引入页面后实现右上角点击分享功能 (提示:web view 不支持分享朋友圈) 具体实现步骤: 1.利用web view 将h5嵌入小程序 //index.vue页面 // 注意: @message 事件是uniapp中的web-viwe 小程序用的是

微信支付V3接口开发流程

五迷三道 提交于 2020-10-28 10:50:25
一、商户后台设置V3 Key密钥及下载V3 API证书(三个文件分别为apiclient_key.pem、apiclient_cert.pem、apiclient_cert.p12) 二、设计表结构实现管理功能 package com.budwk.nb.wx.models; import com.budwk.nb.commons.base.model.BaseModel; import lombok.Data; import lombok.EqualsAndHashCode; import org.nutz.dao.entity.annotation.*; import org.nutz.dao.interceptor.annotation.PrevInsert; import java.io.Serializable; /** * 微信支付配置表 * @author wizzer@qq.com */ @Data @EqualsAndHashCode(callSuper = true) @Table("wx_pay") public class Wx_pay extends BaseModel implements Serializable { private static final long serialVersionUID = 1L; @Column @Name

PHP实现微信申请退款功能

偶尔善良 提交于 2020-08-15 07:33:58
前期准备: 一定要先搞定了微信支付,不然怎么退款,这次使用官方的demo。当然网上可能也有很多大神自己重写和封装了demo,或许更加好用简洁,但是我还是不提倡用,原因如下: (1)可能功能不全,或许他只是实现了微信支付,但是还有申请退款、查询退款、订单查询、撤销订单等业务功能可能是你后续需要的,如果你依赖于大神的SDK的便捷,如果有新的业务需求,你就懵逼了; (2)安全考虑,涉及到支付涉及到金钱,必须要非常安全。官方SDK虽然我也吐槽,但至少会相对比较安全,再次重写,虽然暂时没看出问题,但是万一有漏洞就不好了。 本篇还是使用到官方提供的SDK中的最重要的一个类文件WxPay.Api.PHP中提供的refund()方法来实现,此方法在WxPay.Api.php文件的第141行,代码如下: /** * * 申请退款,WxPayRefund中out_trade_no、transaction_id至少填一个且 * out_refund_no、total_fee、refund_fee、op_user_id为必填参数 * appid、mchid、spbill_create_ip、nonce_str不需要填入 * @param WxPayRefund $inputObj * @param int $timeOut * @throws WxPayException * @return 成功时返回

如何实现微信二维码支付功能???

こ雲淡風輕ζ 提交于 2020-08-12 13:49:10
首先呢,要实现微信支付,首先要申请一个公众号,人家支付的money才能到你口袋噢,不然,你可以不用申请,来, 给你提供一个号,尽管支付,别客气,嚯嚯[偷笑] 咱们别造了哈, 直接开货吧!!!!!!!!!!!!!! 一. 微信支付概述 (1) 账号申请 步骤一:注册公众号,根据自身主体类型注册对应的公众号 注意: 只能申请 服务号 ,订阅号没有办法申请支付 煌sir给你提供申请网址: 安排666 https://kf.qq.com/product/weixinmp.html#hid=87 步骤二:微信认证,公众号认证后才可申请微信支付 注意噢:(想要拥有属于自己的专属号,需要提交费用审核噢) 步骤三:申请微信支付 登录公众平台,点击左侧菜单【微信支付】,开始填写资料等待审核,审核时间为1-5个工作日内。 步骤四:商户账号审核 ​​​​​​ 审核通过之后会往您填写的邮箱里发一封邮件是关于微信支付商户的帐号信息,同时您对公账户上也会收到几毛钱的汇款,需要您查看下具体的金额然后登录微信支付商户平台进行验证 步骤五:在线签署协议 本协议为线上电子协议,签署后方可进行交易及资金结算,签署完立即生效。 步骤六:完成上述步骤,你可以得到调用API用到的账号和密钥 appid:微信公众账号或开放平台APP的唯一标识 mch _id :商户号 key :商户密钥 (2)测试账号: 当然

微信支付对账,你是如何处理的?

梦想的初衷 提交于 2020-07-24 04:54:36
支付对账,即检查第三方支付与数据库中账单是否一一对应,涉及到微信对账单的处理,成功时,微信账单接口返回数据以文本表格的方式返回,第一行为表头,后面各行为对应的字段内容,字段内容跟查询订单或退款结果一致,具体字段说明可查阅相应接口。 Ps:至于如何调用微信接口下载对账单,在微信的官方SDK包中就有现成的方法,直接调用即可。注意对账单接口一次只能查询一天的数据。 代码大致如下: // 引入微信sdk文件 require_once APP_DIR . '/ome/lib/wxpay/lib/WxPay.Api.php'; require_once APP_DIR . '/ome/lib/wxpay/log.php'; // 实列化下载对账单对象 $input = new WxPayDownloadBill(); // 对账单日期 $input->SetBill_date(date("Ymd", strtotime("-1 day"))); // 对账单类型 $input->SetBill_type('ALL'); // 获取账单信息 $downloadBillResult = WxPayApi::downloadBill($input); 打印$downloadBillResult就会发现他是一个数据文本(string),本文程序需要实现的功能就是从这个字符串从提取每一笔订单中的有效信息

PHP7 微信支付回调失败 解决

孤街醉人 提交于 2020-05-07 20:12:02
升级完PHP7 发现微信支付回调失败。原来是 $GLOBALS['HTTP_RAW_POST_DATA'];没有定义的问题。php7 移除了这个全局变量。 问题代码如下: 微信API :WxPay.Api.php public static function notify( $callback , & $msg ) { // 获取通知的数据 $xml = $GLOBALS ['HTTP_RAW_POST_DATA']; // 这里在php7下不能获取数据,使用 php://input 代替 if (! $xml ){ $xml = file_get_contents ("php://input" ); } // 如果返回成功则验证签名 try { $result = WxPayResults::Init( $xml ); } catch (WxPayException $e ){ $msg = $e -> errorMessage(); return false ; } return call_user_func ( $callback , $result ); } 来源: oschina 链接: https://my.oschina.net/u/4307124/blog/4055483

PHP7放弃大礼包(微信支付回调签名错误)

╄→尐↘猪︶ㄣ 提交于 2020-05-07 19:20:01
php7不再支持HTTP_RAW_POST_DATA,微信支付$GLOBALS[‘HTTP_RAW_POST_DATA’]获取不到数据   php7不再支持HTTP_RAW_POST_DATA   原来系统一些地方,   使用$GLOBALS[‘HTTP_RAW_POST_DATA’]来获取数据,   在php7里无法获取了。   解决的方法也很简单,   只要使用php://input来代替就行。   比如   $data = $GLOBALS['HTTP_RAW_POST_DATA'];   改为   $data = file_get_contents('php://input'); 最直接的后果就是微信支付回调时的签名验证失败,在WxPay.php中的: /** * * 支付结果通用通知 * @param function $callback * 直接回调函数使用方法: notify(you_function); * 回调类成员函数方法:notify(array($this, you_function)); * $callback 原型为:function function_name($data){} */ public static function notify($config, $callback, &$msg) { if (!isset($GLOBALS['HTTP

判断浏览器类型

余生颓废 提交于 2020-05-06 23:17:00
/** *判断当前的浏览器类型 */ function terminalInfo() { var jsons= {} var ua = navigator.userAgent; var isWeixin = !!/MicroMessenger/i.test(ua); var isAplipay = !!/AlipayClient/i.test(ua); var isUnionPay = !!/UnionPay/i.test(ua); //云闪付 //判断是否是微信访问 if(isWeixin){ jsons.appName = "WECHAT"; jsons.payChannel = "wxpay"; jsons.source = "WEB_WECHAT" }else if(isAplipay){ jsons.appName = "ALIPAY"; jsons.payChannel = "ALIPAY"; jsons.source = "WEB_ALIPAY" }else if(isUnionPay){ jsons.appName = "UNIONPAY"; jsons.payChannel = "UNIONPAY"; jsons.source = "WEB_UNIONPAY" }else{ jsons.appName = "WEB"; jsons.source = "WEB";