微信怎么发邮件参考开户邮件设置是指什么用

搜索“微信支付基本配置”的网页标题
1&微信支付配置说明_百度文库日&-&微信支付申请下来后这样设置. 在微信支付-》开发配置里面 点击修改 按照这样填写,填写好后保存就可以了。 点击开发者中心 找到这个: 点击网页授权获取...
2&微信支付平台设置及如何获取微信支付所需参数 日&-&登陆微信支付商户平台,在账户设置-&API安全中设置API秘钥。 在开发-&基本配置获取appid及appsecret。 以上就是微信支付设置及参数获取的全部内容。 献花(0) +1
3&腾讯客服-微信支付商户开发配置设置微信支付开发配置,属于技术操作,非技术人员无法完成; 强烈建议由开发人员在详细阅读支付开发教程后操作,我司暂不提供技术指导。 页面如下:以上...
4&Payment:微信支付配置文件设置说明 - 菜鸟coder怎么办? - CSDN博客日&-&微信支付个人觉得在帐号设置上有些麻烦,帐号太多啦,支付宝目前就是一个应用基本涵盖了所有的接口开发。 可能是由于微信支付的后端是财付通,反正咱们写...
5&如何绑定微信支付/微信支付配置教程_百度知道最佳答案: 支付宝是阿里巴巴公司的,所以淘宝使用的就是支付宝。而微信支付是腾讯公司的。两个不同公司用的是不同的支付工具,不能绑定。 开通微信支付的步骤: 1...更多关于微信支付基本配置的问题&&
专业问答网站
6&微信支付设置_凡科建站申请开通微信支付后,您会收到开户邮件,请使用开户邮件中的登录名和密码,登录微信...在微信公众平台 开发者中心---基本配置 里面找到AppID(应用ID)和AppSecret(应用...
7&微信支付顺序怎么设置微信支付顺序怎么设置 微信支付银行卡顺序怎么调整?微信设置默认银行卡的方法: 微信支付银行卡的顺序是按照最近添加的银行卡来排列的.因此,如果你想要设置某一张银行...
8&单单做微信支付 服务器配置这块需要设置吗-CSDN论坛[图文]日&-&你要做微信支付,一定要用到公众号的相关信息,去实现一些接口才可以,我觉有需要设置这个地方,我们公司的微信支付,这个地方填写的地址必须是我们公司的...
9&微信支付基本配置&相关百度经验&组图
10&微信支付配置参数:支付授权目录、回调支付URL - smile001 - 博客园日&-&二、微信支付分为老版支付和新版支付,除了较早期申请的用户为老版支付,现均为新版微信支付。 三、公众平台微信支付开发配置参数: 1、支付授权目录:www...
共9,880,000条搜索结果
时间: 07:46:10
本文来自: ,转载请保留出处!
本文链接: 微信支付基本配置_
手机配件资讯导航1596人阅读
微信(12)
PHP微信支付开发过程,分享给大家,供大家参考,具体内容如下
1.开发环境&
Thinkphp 3.2.3&
微信:服务号,已认证&
开发域名: (自定义的域名,外网不可访问)
2.需要相关文件和权限&
微信支付需申请开通&
微信公众平台开发者文档:http://mp./wiki/home/index.html&
微信支付开发者文档:https://pay./wiki/doc/api/index.html&
微信支付SDK下载地址:https://pay./wiki/doc/api/jsapi.php?chapter=11_1
下载好微信支付PHP版本的SDK,文件目录为下图:
把微信支付SDK的Cert和Lib目录放入Thinkphp,目录为&
现在介绍微信支付授权目录问题,首先是微信支付开发配置里面的支付授权目录填写,&
然后填写JS接口安全域。&
最后设置网页授权&
这些设置完,基本完成一半,注意设置的目录和我thinkphp里面的目录。&
4.微信支付配置
把相关配置填写正确。
* 配置账号信息
class WxPayConfig
//=======【基本信息设置】=====================================
* TODO: 修改这里配置为您自己申请的商户信息
* 微信公众号信息配置
* APPID:绑定支付的APPID(必须配置,开户邮件中可查看)
* MCHID:商户号(必须配置,开户邮件中可查看)
* KEY:商户支付密钥,参考开户邮件设置(必须配置,登录商户平台自行设置)
* 设置地址:https://pay./index.php/account/api_cert
* APPSECRET:公众帐号secert(仅JSAPI支付的时候需要配置, 登录公众平台,进入开发者中心可设置),
* 获取地址:https://mp./advanced/advanced?action=dev&t=advanced/dev&token=&lang=zh_CN
* @var string
const APPID = '';
const MCHID = '';
const KEY = '';
const APPSECRET = '';
//=======【证书路径设置】=====================================
* TODO:设置商户证书路径
* 证书路径,注意应该填写绝对路径(仅退款、撤销订单时需要,可登录商户平台下载,
* API证书下载地址:https://pay./index.php/account/api_cert,下载之前需要安装商户操作证书)
* @var path
const SSLCERT_PATH = '../cert/apiclient_cert.pem';
const SSLKEY_PATH = '../cert/apiclient_key.pem';
//=======【curl代理设置】===================================
* TODO:这里设置代理机器,只有需要代理的时候才设置,不需要代理,请设置为0.0.0.0和0
* 本例程通过curl使用HTTP POST方法,此处可修改代理服务器,
* 默认CURL_PROXY_HOST=0.0.0.0和CURL_PROXY_PORT=0,此时不开启代理(如有需要才设置)
* @var unknown_type
const CURL_PROXY_HOST = &0.0.0.0&;//&10.152.18.220&;
const CURL_PROXY_PORT = 0;//8080;
//=======【上报信息配置】===================================
* TODO:接口调用上报等级,默认紧错误上报(注意:上报超时间为【1s】,上报无论成败【永不抛出异常】,
* 不会影响接口调用流程),开启上报之后,方便微信监控请求调用的质量,建议至少
* 开启错误上报。
* 上报等级,0.关闭上报; 1.仅错误出错上报; 2.全量上报
* @var int
const REPORT_LEVENL = 1;
现在开始贴出代码:
namespace Wechat\C
use Think\C
* 父类控制器,需要继承
* @file ParentController.class.php
* @author Gary &&
* @date 日
class ParentController extends Controller {
protected $options = array (
'token' =& '', // 填写你设定的key
'encodingaeskey' =& '', // 填写加密用的EncodingAESKey
'appid' =& '', // 填写高级调用功能的app id
'appsecret' =& '', // 填写高级调用功能的密钥
'debug' =& false,
'logcallback' =& ''
public $errCode = 40001;
public $errMsg = &no access&;
* 获取access_token
* @return mixed|boolean|unknown
public function getToken(){
$cache_token = S('exp_wechat_pay_token');
if(!empty($cache_token)){
return $cache_
$url = 'https://api./cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s';
$url = sprintf($url,$this-&options['appid'],$this-&options['appsecret']);
$result = $this-&http_get($url);
$result = json_decode($result,true);
if(empty($result)){
S('exp_wechat_pay_token',$result['access_token'],array('type'=&'file','expire'=&3600));
return $result['access_token'];
* 发送客服消息
* @param array $data 消息结构{&touser&:&OPENID&,&msgtype&:&news&,&news&:{...}}
public function sendCustomMessage($data){
$token = $this-&getToken();
if (empty($token))
$url = 'https://api./cgi-bin/message/custom/send?access_token=%s';
$url = sprintf($url,$token);
$result = $this-&http_post($url,self::json_encode($data));
if ($result)
$json = json_decode($result,true);
if (!$json || !empty($json['errcode'])) {
$this-&errCode = $json['errcode'];
$this-&errMsg = $json['errmsg'];
* 发送模板消息
* @param unknown $data
* @return boolean|unknown
public function sendTemplateMessage($data){
$token = $this-&getToken();
if (empty($token))
$url = &https://api./cgi-bin/message/template/send?access_token=%s&;
$url = sprintf($url,$token);
$result = $this-&http_post($url,self::json_encode($data));
if ($result)
$json = json_decode($result,true);
if (!$json || !empty($json['errcode'])) {
$this-&errCode = $json['errcode'];
$this-&errMsg = $json['errmsg'];
public function getFileCache($name){
return S($name);
* 微信api不支持中文转义的json结构
* @param array $arr
static function json_encode($arr) {
$parts = array ();
$is_list =
//Find out if the given array is a numerical array
$keys = array_keys ( $arr );
$max_length = count ( $arr ) - 1;
if (($keys [0] === 0) && ($keys [$max_length] === $max_length )) { //See if the first key is 0 and last key is length - 1
$is_list =
for($i = 0; $i & count ( $keys ); $i ++) { //See if each key correspondes to its position
if ($i != $keys [$i]) { //A key fails at position check.
$is_list = //It is an associative array.
foreach ( $arr as $key =& $value ) {
if (is_array ( $value )) { //Custom handling for arrays
if ($is_list)
$parts [] = self::json_encode ( $value ); /* :RECURSION: */
$parts [] = '&' . $key . '&:' . self::json_encode ( $value ); /* :RECURSION: */
$str = '';
if (! $is_list)
$str = '&' . $key . '&:';
//Custom handling for multiple data types
if (!is_string ( $value ) && is_numeric ( $value ) && $value&)
$str .= $ //Numbers
elseif ($value === false)
$str .= 'false'; //The booleans
elseif ($value === true)
$str .= 'true';
$str .= '&' . addslashes ( $value ) . '&'; //All other things
// :TODO: Is there any more datatype we should be in the lookout for? (Object?)
$parts [] = $
$json = implode ( ',', $parts );
if ($is_list)
return '[' . $json . ']'; //Return numerical JSON
return '{' . $json . '}'; //Return associative JSON
+----------------------------------------------------------
* 生成随机字符串
+----------------------------------------------------------
* @param int $length 要生成的随机字符串长度
* @param string $type 随机码类型:0,数字+大小写字母;1,数字;2,小写字母;3,大写字母;4,特殊字符;-1,数字+大小写字母+特殊字符
+----------------------------------------------------------
* @return string
+----------------------------------------------------------
static public function randCode($length = 5, $type = 2){
$arr = array(1 =& &&, 2 =& &abcdefghijklmnopqrstuvwxyz&, 3 =& &ABCDEFGHIJKLMNOPQRSTUVWXYZ&, 4 =& &~@#$%^&*(){}[]|&);
if ($type == 0) {
array_pop($arr);
$string = implode(&&, $arr);
} elseif ($type == &-1&) {
$string = implode(&&, $arr);
$string = $arr[$type];
$count = strlen($string) - 1;
$code = '';
for ($i = 0; $i & $ $i++) {
$code .= $string[rand(0, $count)];
* GET 请求
* @param string $url
private function http_get($url){
$oCurl = curl_init();
if(stripos($url,&https://&)!==FALSE){
curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1
curl_setopt($oCurl, CURLOPT_URL, $url);
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );
$sContent = curl_exec($oCurl);
$aStatus = curl_getinfo($oCurl);
curl_close($oCurl);
if(intval($aStatus[&http_code&])==200){
return $sC
* POST 请求
* @param string $url
* @param array $param
* @param boolean $post_file 是否文件上传
* @return string content
private function http_post($url,$param,$post_file=false){
$oCurl = curl_init();
if(stripos($url,&https://&)!==FALSE){
curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1
if (is_string($param) || $post_file) {
$strPOST = $
$aPOST = array();
foreach($param as $key=&$val){
$aPOST[] = $key.&=&.urlencode($val);
$strPOST = join(&&&, $aPOST);
curl_setopt($oCurl, CURLOPT_URL, $url);
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($oCurl, CURLOPT_POST,true);
curl_setopt($oCurl, CURLOPT_POSTFIELDS,$strPOST);
$sContent = curl_exec($oCurl);
$aStatus = curl_getinfo($oCurl);
curl_close($oCurl);
if(intval($aStatus[&http_code&])==200){
return $sC
namespace Wechat\C
use Wechat\Controller\ParentC
* 微信支付测试控制器
* @file TestController.class.php
* @author Gary &&
* @date 日
class TestController extends ParentController {
private $_order_body = 'xxx';
private $_order_goods_tag = 'xxx';
public function __construct(){
parent::__construct();
require_once ROOT_PATH.&Api/lib/WxPay.Api.php&;
require_once ROOT_PATH.&Api/lib/WxPay.JsApiPay.php&;
public function index(){
//①、获取用户openid
$tools = new \JsApiPay();
$openId = $tools-&GetOpenid();
//②、统一下单
$input = new \WxPayUnifiedOrder();
//商品描述
$input-&SetBody($this-&_order_body);
//附加数据,可以添加自己需要的数据,微信回异步回调时会附加这个数据
$input-&SetAttach('xxx');
//商户订单号
$out_trade_no = \WxPayConfig::MCHID.date(&YmdHis&);
$input-&SetOut_trade_no($out_trade_no);
//总金额,订单总金额,只能为整数,单位为分
$input-&SetTotal_fee(1);
//交易起始时间
$input-&SetTime_start(date(&YmdHis&));
//交易结束时间
$input-&SetTime_expire(date(&YmdHis&, time() + 600));
//商品标记
$input-&SetGoods_tag($this-&_order_goods_tag);
//通知地址,接收微信支付异步通知回调地址 SITE_URL=/Charge
$notify_url = SITE_URL.'/index.php/Test/notify.html';
$input-&SetNotify_url($notify_url);
//交易类型
$input-&SetTrade_type(&JSAPI&);
$input-&SetOpenid($openId);
$order = \WxPayApi::unifiedOrder($input);
$jsApiParameters = $tools-&GetJsApiParameters($order);
//获取共享收货地址js函数参数
$editAddress = $tools-&GetEditAddressParameters();
$this-&assign('openId',$openId);
$this-&assign('jsApiParameters',$jsApiParameters);
$this-&assign('editAddress',$editAddress);
$this-&display();
* 异步通知回调方法
public function notify(){
require_once ROOT_PATH.&Api/lib/notify.php&;
$notify = new \PayNotifyCallBack();
$notify-&Handle(false);
//这里的IsSuccess是我自定义的一个方法,后面我会贴出这个文件的代码,供参考。
$is_success = $notify-&IsSuccess();
$bdata = $is_success['data'];
//支付成功
if($is_success['code'] == 1){
$news = array(
'touser' =& $bdata['openid'],
'msgtype' =& 'news',
'news' =& array (
'articles'=& array (
'title' =& '订单支付成功',
'description' =& &支付金额:{$bdata['total_fee']}\n&.
&微信订单号:{$bdata['transaction_id']}\n&
'picurl' =& '',
'url' =& ''
//发送微信支付通知
$this-&sendCustomMessage($news);
}else{//支付失败
* 支付成功页面
* 不可靠的回调
public function ajax_PaySuccess(){
$out_trade_no = I('post.out_trade_no');
//支付金额
$total_fee = I('post.total_fee');
/*相关逻辑处理*/
}贴上模板HTML
&meta http-equiv=&content-type& content=&text/charset=utf-8&/&
&meta name=&viewport& content=&width=device-width, initial-scale=1&/&
&title&微信支付样例-支付&/title&
&script type=&text/javascript&&
//调用微信JS api 支付
function jsApiCall()
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
{$jsApiParameters},
function(res){
WeixinJSBridge.log(res.err_msg);
//取消支付
if(res.err_msg == 'get_brand_wcpay_request:cancel'){
//处理取消支付的事件逻辑
}else if(res.err_msg == &get_brand_wcpay_request:ok&){
/*使用以上方式判断前端返回,微信团队郑重提示:
res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。
这里可以使用Ajax提交到后台,处理一些日志,如Test控制器里面的ajax_PaySuccess方法。
alert(res.err_code+res.err_desc+res.err_msg);
function callpay()
if (typeof WeixinJSBridge == &undefined&){
if( document.addEventListener ){
document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
}else if (document.attachEvent){
document.attachEvent('WeixinJSBridgeReady', jsApiCall);
document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
jsApiCall();
//获取共享地址
function editAddress()
WeixinJSBridge.invoke(
'editAddress',
{$editAddress},
function(res){
var value1 = res.proviceFirstStageN
var value2 = res.addressCitySecondStageN
var value3 = res.addressCountiesThirdStageN
var value4 = res.addressDetailI
var tel = res.telN
alert(value1 + value2 + value3 + value4 + &:& + tel);
window.onload = function(){
if (typeof WeixinJSBridge == &undefined&){
if( document.addEventListener ){
document.addEventListener('WeixinJSBridgeReady', editAddress, false);
}else if (document.attachEvent){
document.attachEvent('WeixinJSBridgeReady', editAddress);
document.attachEvent('onWeixinJSBridgeReady', editAddress);
editAddress();
&font color=&#9ACD32&&&b&该笔订单支付金额为&span style=&color:#f00;font-size:50px&&1分&/span&钱&/b&&/font&&br/&&br/&
&div align=&center&&
&button style=&width:210 height:50 border-radius: 15background-color:#FE6714; border:0px #FE6714 cursor: color: font-size:16& type=&button& onclick=&callpay()& &立即支付&/button&
&/html&notify.php文件代码,这里有在官方文件里新添加的一个自定义方法。
require_once ROOT_PATH.&Api/lib/WxPay.Api.php&;
require_once ROOT_PATH.'Api/lib/WxPay.Notify.php';
require_once ROOT_PATH.'Api/lib/log.php';
//初始化日志
$logHandler= new \CLogFileHandler(ROOT_PATH.&/logs/&.date('Y-m-d').'.log');
$log = \Log::Init($logHandler, 15);
class PayNotifyCallBack extends WxPayNotify
protected $para = array('code'=&0,'data'=&'');
//查询订单
public function Queryorder($transaction_id)
$input = new \WxPayOrderQuery();
$input-&SetTransaction_id($transaction_id);
$result = \WxPayApi::orderQuery($input);
\Log::DEBUG(&query:& . json_encode($result));
if(array_key_exists(&return_code&, $result)
&& array_key_exists(&result_code&, $result)
&& $result[&return_code&] == &SUCCESS&
&& $result[&result_code&] == &SUCCESS&)
$this-&para['code'] = 0;
$this-&para['data'] = '';
//重写回调处理函数
public function NotifyProcess($data, &$msg)
\Log::DEBUG(&call back:& . json_encode($data));
$notfiyOutput = array();
if(!array_key_exists(&transaction_id&, $data)){
$msg = &输入参数不正确&;
$this-&para['code'] = 0;
$this-&para['data'] = '';
//查询订单,判断订单真实性
if(!$this-&Queryorder($data[&transaction_id&])){
$msg = &订单查询失败&;
$this-&para['code'] = 0;
$this-&para['data'] = '';
$this-&para['code'] = 1;
$this-&para['data'] = $
* 自定义方法 检测微信端是否回调成功方法
* @return multitype:number string
public function IsSuccess(){
return $this-&
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:44455次
积分:1170
积分:1170
排名:千里之外
原创:75篇
(7)(6)(40)(25)(3)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'> 微信邮件接收不到怎么办
微信邮件接收不到怎么办 邮件服务停止了
  微信邮件接收不到怎么办?
  邮件服务器之间的SMTP协议使用TCP连接, 可以保证邮件准确无误地在邮件服务器之间传输. 但由于邮件服务器本身的故障, 例如邮件空间不足等,
会导致邮件无法完成传输而导致丢失。
  下面,我们就来看看邮件服务停止了是怎么回事。
  1、首先,将邮箱客户端打开。
  2、单击打开右上角的&设置&按钮。
  3、进入&设置&里面可以看到大概中间的位置有一个&新邮件提醒&,单击打开。
  4、在中间可以看到您绑定的qq邮箱,单击将其打开。
  5、在最下面可以看到&仅在QQ邮箱客户端提醒&,将勾选取消。接下来微信就可以重新接受邮件及邮件提醒了。

我要回帖

更多关于 微信转发邮件收不到 的文章

 

随机推荐