请问支付宝怎么开通有人在金砖平台用过微信来支付的吗?

& 微信公众平台开发使用微信支付方法
微信公众平台开发使用微信支付方法
一、JS-SDK
&公众号中的微信支付需要通过JS来实现。微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。。
1)引入JS脚本文件
&script src="http://res./open/js/jweixin-1.0.0.js"&&/script&
2)通过config接口注入权限验证配置
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名
appId就是应用ID,wx打头的那串字符,timestamp在php中就用time()获取,而nonceStr就用uniqid()获取,而signature根据特定算法获取。
protected function getJsapiConfig()
$weixin = new Weixin();
$ticketMongo = new WeixinJsapiTicket();
'appId' =& $weixin-&getAppId(),
'noncestr' =& uniqid(),
'jsapi_ticket' =& $ticketMongo-&getJsapiTicket(),
'timestamp' =& time()
//拼装原始待签名串
'noncestr=' . $data['noncestr'],
'jsapi_ticket=' . $data['jsapi_ticket'],
'timestamp=' . $data['timestamp']
sort($src);
$data['signature'] = sha1(implode('&', $src));
这里说明下“jsapi_ticket”,jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于有时间限制,而且获取jsapi_ticket的api调用次数非常有限,所以我会将获取到的jsapi_ticket保存到MongoDB中。
* 通过access_token获取jsapi_ticket
* @param $access_token
* @return string | null
public function getJsapiTicket($access_token)
$url = 'https://api./cgi-bin/ticket/getticket';
$param = [
'access_token' =& $access_token,
'type' =& 'jsapi'
$res = $this-&request($url, $param);
$result = json_decode($res, true);
if (isset($result['errcode']) && $result['errcode'] == 0 && isset($result['ticket'])) {
3)通过ready接口处理成功验证
1)prepay_id是根据本地生成的订单号等获取的,订单号每次请求的得不一样,不然会报错的,点击。
2)nonceStr就用md5(uniqid('baiaimama'))获取
3)signType使用MD5
4)paySign根据代码的参数,排序后拼接获得。
wx.chooseWXPay({
timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
nonceStr: '', // 支付签名随机串,不长于 32 位
package: '', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
signType: '', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
paySign: '', // 支付签名
success: function (res) {
// 支付成功后的回调函数
* 生成jsapi需要调用的参数
public function getJsapiParam(){
$param = [
'appId' =& $this-&APPID,
'timeStamp' =& time(),
'nonceStr' =& md5(uniqid('baiaimama')),
'package' =& 'prepay_id='.$this-&param['prepay_id'],
'signType' =& 'MD5'
$str = [];
foreach($param as $k=&$v){
if(!empty($v)){
$str[] = "{$k}={$v}";
sort($str);
$unsignKey = join('&', $str).'&key='.$this-&KEY;
$sign = strtoupper(md5($unsignKey));
$param['paySign'] = $
二、异步回调
异步回调中做些修改订单状态、发送短信,推送消息等操作。
* 微信支付异步回调API
* 微信支付成功,会收到异步回调
public function actionWxpay()
$weixinPay = new WeixinPay();
$weixin = new Weixin();
$xml = file_get_contents('php://input');
$msg = $weixin-&parseMsg($xml);
//记录微信推送日志
$notifyMongo = new WeixinPayNotify();
$notifyMongo-&logPayNotify($xml);
if(!$msg || !is_object($msg)){
$weixinPay-&notifyXml('FAIL', '通知不合法');
if(!isset($msg-&return_code) || $msg-&return_code != 'SUCCESS'){
$weixinPay-&notifyXml('FAIL', '通信失败');
if(!isset($msg-&result_code) || $msg-&result_code != "SUCCESS"){
$weixinPay-&notifyXml('FAIL', '交易失败');
//签名验证失败
if(!$weixinPay-&checkSign($msg)){
$weixinPay-&notifyXml('FAIL', '签名验证失败');
//$notifyMongo-&add($msg);
//流程走到这里说明已经支付成功了,这里无需更新订单逻辑
$userOrder = new UserOrder();
//记录微信订单号
$userOrder-&pay($msg-&out_trade_no, $msg-&transaction_id);
demo下载:
手机扫描上方二维码 关注PHP新手官方微信号phpxs8 聊聊编程技术 聊聊程序人生。
本文固定链接:
转载请注明:转载必须在正文中标注并保留原文链接
编辑:River
有人的地方,就有江湖;有网络的地方,就有PHP新手。IT人的家园,IT界的烟火。
学习编程5个常见的疑问
相关: 猜您喜欢目前我知道的就是服务号支付用于微店的,开放平台是用于各类场合(线下扫码支付,其他线上第三方平台支付等)。 我想知道的是,对于商家来说有必要2个微信支付都开通吗?
可以只申请其中一种来满足商家的支付需求吗?
开通微信支付的商户号后,怎么线下使用呢?——只要就是怎么生成支付二维码呢?
已有帐号?
无法登录?
社交帐号登录?用微信公众平台发支付宝红包口令,这个必须请业内人士回答,求救,困扰死我了!
大神好!我自己申请了一个微信公众平台账号。为了吸引人们关注,我选择了发红包的方式。但是微信公号不能发红包,我就在自己的微信平台群发支付宝口令,让用户到支付宝去抢口令红包。结果,估计是被人盯上了。每次我这里微信刚一发出,十多秒,支付宝口令红包就抢光了。几次都是这样。我粉丝不多,是不可能看过微信的人都抢走的,而且几次抢走的都不是我的微信粉丝。请问,这是怎么实现的?有什么破解的办法?!
按投票排序
这很正常啊,可能是你的某个粉丝看到了转发到自己的群里或者朋友圈,一传十十传百很快就没了很正常啊。
我建议你还是用公众号发红包吧,而且借助第三方很容易实现的,应该不会出现你说的情况,口令可以自定义,也可以批量生成随机口令,还可以领取红包设置间隔,需要的话可以联系。
遇到了同样的情况。。。感觉速度之快比转发要快。。。怀疑有红包软件吧。。。
用龙速口令红包,能解决这个问题,专门的微信口领红包
已有帐号?
无法登录?
社交帐号登录

我要回帖

更多关于 金砖平台 的文章

 

随机推荐