微信开发企业支付到银行卡 功能详解 不会的朋友可以加我QQ:344902511
先发个微信支付官方链接你查看
https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=24_2
直接上代码 
由于这里需要RSA算法 微信官方默认输出的是PKCS#1,笔者在这里发现RAS公钥在WINDOWS系统中安装复杂,后SSH到我的linux中转换了RSA
官方给出的RSA公钥开头 -----BEGIN RSA PUBLIC KEY-----
我们需要转成-----BEGIN PUBLIC KEY----- 这样开头的内容才可以使用
PKCS#1 转 PKCS#8:linux口令
openssl rsa -RSAPublicKey_in -in <filename> -pubout 
<filename>是文件的路径
回车以后会
显示一下内容
-----BEGIN PUBLIC KEY-----
你的加密串
-----END PUBLIC KEY-----

复制出来后 你保存到你的网站目录上后缀扩展为pem
然后你就可以使用了

下面直接看代码
第一步。获取官方的RSA-PKCS1#

 public function RasKey($datainfo="")
{
$data=[
//商户号
"mch_id"=>$this->mch_id,
//随机字符串
"nonce_str"=>$this->genRandomString(32),
//加密方式我是MD5
"sign_type"=>"MD5",
];
//微信签名
$data["sign"]=$this->MakeSign($data);
//提交到的URL
$url="https://fraud.mch.weixin.qq.com/risk/getpublickey";
//转换成XML格式POST到服务器
$backxml=$this->postStr($url,$this->arrayToXml($data));
//将获取到的内容解析成对象
$backarr=simplexml_load_string($backxml, 'SimpleXMLElement', LIBXML_NOCDATA);
//转换成数组
$jsonStr = json_encode($backarr);
$jsonArray = json_decode($jsonStr,true);
//保存成PEM文件
file_put_contents("pub_key.pem",$backarr->pub_key);
dump($jsonArray);
}

  

复制代码

第二部将 pub_key.pem 传送到linux系统进行PK8转码
使用此口令 openssl rsa -RSAPublicKey_in -in <filename> -pubout 
<filename> 是文件名
拿到新的PK8码我们保存到自己的服务器pk8.pem

第三部 加密并递交打款

$data=[
//商户号
"mch_id"=>$this->mch_id,
//商户订单号
"partner_trade_no"=>md5(time()),
//随机字符串
"nonce_str"=>$this->genRandomString(32),
//收款方银行卡号
"enc_bank_no"=>$this->rsa_encrypt("您的卡号"),
//收款方用户名
"enc_true_name"=>$this->rsa_encrypt("您的姓名"),
//收款方开户行
"bank_code"=>"银行卡编码",
//付款金额
"amount"=>100,
//付款说明
"desc"=>"账户提现",
];
//微信签名
$data["sign"]=$this->MakeSign($data);
//POST到微信服务器的网址
$url="https://api.mch.weixin.qq.com/mmpaysptrans/pay_bank";
//以XML的格式POST到服务器
$backxml=$this->postStr($url,$this->arrayToXml($data));
//POST获取到的内容转成对象
$backarr=simplexml_load_string($backxml, 'SimpleXMLElement', LIBXML_NOCDATA);
dump($backarr);

  

复制代码

最后就成功了

因为自己没有权限 所以显示如下

["return_code"] => string(7) "SUCCESS"
["return_msg"] => string(73) "产品权限验证失败,请查看您当前是否具有该产品的权限"
["result_code"] => string(4) "FAIL"
["err_code"] => string(7) "NO_AUTH"
["err_code_des"] => string(73) "产品权限验证失败,请查看您当前是否具有该产品的权限"
["nonce_str"] => string(32) "tEmXrUFgcBfLgVqMqkKcpJKfHJ3sZtsZ"
["mch_id"] => string(10) "1512018791"
["partner_trade_no"] => string(32) "055a1afff8191338302c4a2b193ba242"
["amount"] => string(3) "100"

如果在加密串或微信付款上卡住的朋友 可以直接联系我

微信开发企业支付到银行卡PHP的更多相关文章

  1. PHP微信商户支付 - 企业付款到零钱功能(即提现)技术资料汇总

    PHP实现微信开发中提现功能(企业付款到用户零钱) 一.实现该功能目的 这几天在小程序里要实现用户从系统中提现到零钱的功能,查了一下文档可以使用 企业付款到用户零钱 来实现: 官方文档:https:/ ...

  2. .Net后台实现微信APP支付

    上一节分享了微信小程序支付的后台,这一节来分享一下微信APP支付的后台.微信APP支付和微信小程序差别不大,微信APP支付后台不需要微信登录凭证.后台下单时交易类型(trade_type)不再是&qu ...

  3. 微信App支付接入步骤&支付中前后端交互流程

    最近对微信App支付(App端集成微信支付SDK)申请步骤,以及终端在进行微信支付时商户App.商户Server.微信App.微信支付Server的交互流程进行了简单了解.这篇文章应该算是学习笔记,分 ...

  4. 微信架构 & 支付架构(下)

    微信架构 & 支付架构(下) 3. 管理网络请求 首先看看原来 iOS 处理支付网络请求的缺陷: 原来支付的请求,都是通过一个单例网络中心去发起请求,然后收到回包后,通过抛通知,或者调用闭包的 ...

  5. 微信JSAPI支付

    最近在微信H5页面内集成微信JSAPI支付,遇到不少问题,现将集成步骤及遇到的问题记录如下: 1.官方下载SDK,下载地址:https://pay.weixin.qq.com/wiki/doc/api ...

  6. 微信app支付 ci框架做的

    /**     * 组合微信app支付  获得prepayid     * @param int $order_num     */    private function _wxpay_reques ...

  7. 微信JSApi支付~集成到MVC环境后的最后一个坑(网上没有这种解决方案)

    返回目录 大叔第一人 之前写了关于微信的坑<微信JSApi支付~坑和如何填坑>,今天将微信的jsapi支付封装到了MVC环境里,当然也出现了一些新的坑,如支付参数应该是Json对象而不是J ...

  8. 微信JSApi支付~订单号和微信交易号

    返回目录 谈谈transactionId和out_trade_no 前一篇微信JSApi支付~坑和如何填坑文章反映不错,所以又写了个后篇,呵呵. 每个第三方在线支付系统中都会有至少两类订单号,其一为支 ...

  9. 微信JSApi支付~坑和如何填坑

    返回目录 微信一直用着不爽,这几天研究它的jsapi支付,即在微信内打开H5页面,完成支付的过程,在这个过程中,你将会遇到各种各样的问题,而大叔将把这些问题的解决方法写一下,希望可以给你带来帮助! 一 ...

随机推荐

  1. xstream解析xml时遇到特殊字符出错

    在xml中有"&"符号时,解析xml出错 解决办法: 将&替换成&

  2. unity3d卡在loading的解决方法

    解决方案: 关闭U3D,打开电脑的网络适配器把网给掐掉,打开U3D后会提示Workoffline 点击这个即可,然后再把网给起起来就可以了

  3. Javadoc常见的标记和含义

    1.@param 方法参数的说明 2.@return 对 方法返回值的说明 3.@throws 方法抛出异常的描述 4.@version模块的版本号 5.see参数转向 6.@deprecated标记 ...

  4. Color色彩

    Element 为了避免视觉传达差异,使用一套特定的调色板来规定颜色,为你所搭建的产品提供一致的外观视觉感受. ¶主色 Element 主要品牌颜色是鲜艳.友好的蓝色. Blue #409EFF ¶辅 ...

  5. python接口测试之mock(三)

    前面介绍了moco的详细的使用,它主要是基于moco-runner-0.11.0-standalone.jar,通过编写json的文件来实现,mock翻译过来就是模拟的意思,也就是说,它是将测试对象所 ...

  6. oracle 四舍五入 取得的数值

    SELECT ROUND( number, [ decimal_places ] ) FROM DUAL 说明: number : 将要处理的数值 decimal_places : 四舍五入,小数取几 ...

  7. 阶段3 2.Spring_03.Spring的 IOC 和 DI_1 ioc的概念和作用

    IOC的含义 new的方式创建对象,是主动去找对象.对我的资源独立就变的很难,因为这有明显的依赖关系 第二种方式创建对象.app断开了和资源的联系,.而是去找工厂要一个资源.由工厂负责和资源去的联系, ...

  8. python3.6+RF环境搭建

    现在大家都在用python3了,利用这个机会正好把自己的练习重新整理一遍,本篇记录用python3.6重新搭建关键字驱动环境 目录 1.安装python3.6 2.安装wxPython 3.安装rob ...

  9. argparse:命令行参数解析详解

    简介# 本文介绍的是argparse模块的基本使用方法,尤其详细介绍add_argument内建方法各个参数的使用及其效果. 本文翻译自argparse的官方说明,并加上一些笔者的理解 Copy im ...

  10. unity快捷放置物体操作

    https://connect.unity.com/p/zui-jia-shi-jian-dui-xiang-fang-zhi-he-wu-li-xiao-guo 最佳实践系列文章将探讨我们在与客户合 ...