Giter Site home page Giter Site logo

wechat's People

Contributors

eb22fbb4 avatar thenbsp avatar xieyunxia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wechat's Issues

请教关于这个源码的几个问题

看了一下,基本上是接口的封装,那大神有没有一个Demo可以让我这种小白可以理解这个SDK的使用方法呢?

我是用在Yii2这个框架中,感觉您的代码还是挺易读的,但是无从下手。

微信支付统一下单新语法

以下方法还在规划中,还没有提交至 github。

一、配置公从号(商户)信息

$optionsResolver 在实际应用中一般以配置文件的形式存在,因此有必要将这些文件单独分离出来,不必在每次下单时去获取这些参数,并且该方法可满足在多个商户之间切换的需求:

$optionsResolver = array(
    'appid' => 'you appid',
    'appsecret' => 'you appsecret',
    'mch_id' => 'you mch_id',
    'mch_key' => 'you mch_key',
    'notify_url' => 'notify_url_a.php'
);

二、配置商品信息

配置商品基本参数,这里如果出现和 $optionsResolver 相同的参数前者将会被覆盖,这种方式在有些情况下很有用,比如有一款特殊的商口需要通知另一个特定接口时,比如示列中的 notify_url 项,最终请求 unifiedorder 接口会提交 notify_url_b.php 而不是 notify_url_a.php:

$unifiedorder = new Unifiedorder($optionsResolver);
$unifiedorder->body('iphone 6 plus');
$unifiedorder->out_trade_no(date('Y-m-dHis').mt_rand(10000, 99999));
$unifiedorder->total_fee('650000');    // 单位为 “分”
$unifiedorder->openid('Openid form session');
$unifiedorder->notify_url('notify_url_b.php');

三、获取统一下单响应结果

配置完统一下单接参数后,调用 getResponse() 方法将发起对 unifiedorder 接口的调用,响应结果将以 Object 的形式返回,如果接口调用出错,将抛出一个 UnifiedorderException 异常:

try {
    $response = $unifiedorder->getResponse();
} catch (UnifiedorderException $e) {
    exit($e->getMessage());
}
var_dump($response);

备注:

在配置完统一直单的参数后,可以通过 getParams() 方法来查看当前参数是否正确(或缺少):

$params = $unifiedorder->getParams();
var_dump($params);

引用后显示找不到class类文件件

Uncaught exception 'Shopnc\Exception'
with message 'Class Error: cannot autoload
class: Thenbsp\Wechat\OAuth\Client

命名空间
use Shopnc\Tpl;
use Thenbsp\Wechat\OAuth\Client;

$client = new Client($this->appid , $this->secret);
if( !isset($_GET['code']) ) {
header('Location: '.$client->getAuthorizeUrl());
}
echo 1111;die;

token中控问题

希望考虑一下accesstoken已有中控的情形,
这种情况是不需要这边处理accesstoken的

jsapi 支付

为什么用统一下单 jsapi 签名错误。

找不到ArrayCollection

Fatal error: Class 'Doctrine\Common\Collections\ArrayCollection' not found

请问,这是需要第三方库吗?

关于签名生成器

什么是签名?

在微信中,签名是指对一组 QueryString 进行一定格式的排序,加密后的结果,大多数情况下, QueryString 将包含 appidtimestampnonce_str 等信息。

签名生成器如何使用?

https://github.com/thenbsp/wechat/blob/master/Util/SignGenerator.php

基本示例一:

use Thenbsp\Wechat\Util\SignGenerator;

$signGenerator = new SignGenerator();
$signGenerator->addParams('appid', 'your are appid');
$signGenerator->addParams('timestamp', time());
$signGenerator->addParams('nonce_str', 'your are random string');

$result = $signGenerator->getResult();

var_dump($result);

以上结果等同于:

$appid = 'your are appid';
$timestamp = time();
$nonce_str = 'your are random string';

$string = 'appid='.$appid.'&timestamp='.$timestamp .'&nonce_str='.$nonce_str ;
$result = md5($string);

var_dump($result);

自定义加密类型?

// 暂时支持 sha1/md5(默认)
$signGenerator->setHashType('sha1');

自定义结果大小写?

$signGenerator->setUpper(true);

使用最新的代码,composer报错

Using version dev-master for thenbsp/wechat
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1
- The requested package thenbsp/wechat No version set (parsed as 1.0.0) is s
atisfiable by thenbsp/wechat[No version set (parsed as 1.0.0)] but these conflic
t with your requirements or minimum-stability.

Installation failed, reverting ./composer.json to its original content.

关注动作失效

关注时,服务器返回的数据:


1447921517


相关代码:
case ($this->_option['Event'] === 'subscribe') :
return array_key_exists('EventKey', $this->_option) ?
Event::EVENT_QRCODE_UNSUBSCRIBE : Event::EVENT_SUBSCRIBE;
break;

这里的逻辑,是返回了Event::EVENT_QRCODE_UNSUBSCRIBE。
是不是微信的数据变了,你没有及时更新呢?

微信支付回调通知有个问题

if( $notify->containsKey('out_trade_no') ) {
    // 失败时必需返回,否则微信服务器将重复提交通知
    $notify->fail('Invalid Request');
}

这个out_trade_no字段应该都在吧,如果你这边发送fail不就不对了吗?!

你好,请教,微信扫码登录是否能用于三级域名

你好,请教,微信开发平台,网站扫码登录,授权回调域为二级域名 xxx.com,请问该应用是否支持 xxx.xxx.com 三级域名。如果支持,对于不同的三级域名,比如a.xxx.com和b.xxx.com 同一用户返回的access_token是否相同。如果不支持,修改授权回调域后,修改前后,同一用户返回的access_token是否相同。

现在遇到一个问题 让我费解

如果用户 授权后 然后点击授权页 就会出现异常
据了解 这是说code 不能重复使用
《code been used, hints: [ req_id: TlyhvA0845th13 ]》

Exception: Invalid Authentication State "STATE"

在调用过程中的
Thenbsp\Wechat\OAuth\AbstractClient->getAccessToken('011h65fm0KiPfo1...')

Exception: Invalid Authentication State "STATE" in thenbsp/wechat/src/OAuth/AbstractClient.php:113

请问什么原因??Thanks

使用二维码扫码登录时,报错 Invalid Authentication State "xxxxxxxxx"

[0] Exception in AbstractClient.php line 113
Invalid Authentication State "NxVaLjsuw62Pl0dX"
public function getAccessToken($code, $state = null)
{
if (null === $state && !isset($_GET['state'])) {
throw new \Exception('Invalid Request');
}

    // http://www.twobotechnologies.com/blog/2014/02/importance-of-state-in-oauth2.html
    $state = $state ?: $_GET['state'];
    if (!$this->stateManager->isValid($state)) {
        throw new \Exception(sprintf('Invalid Authentication State "%s"', $state));
    }

    $query = array(
        'appid'         => $this->appid,
        'secret'        => $this->appsecret,
        'code'          => $code,
        'grant_type'    => 'authorization_code'
    );

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.