微信支付宝转账凭证弹出好多微信支付宝转账凭证凭证 是不是代码的问题求解决

微信商业化,解决支付痛点,创业机会出现
阿里巴巴现在应该真正害怕微信了。因为微信正在抢食阿里巴巴的生意,不是淘宝,而是支付宝。
而这关乎淘宝和支付宝的生死。如果微信搞定了移动支付,未来让这些人去买点什么东西,而且刚好又是&附近的人&,又&送货上门&,淘宝也就受到威胁了。
微信到底是什么?很多人都没有看清楚。他们将微信或看成是O2O的应用,或看成是SNS,又或看成是LBS&&但实际上都不是。
盐科技投稿人认为,微信正在复制QQ模式:我们可以称之为太空飞船与分离舱架构;或者母舰与护卫舰架构。微信不是一个应用,它是一个应用集群(看不到这一点,就读不懂微信)。在这个集群里,移动IM是核心的免费应用,用以招徕客户,并为他们提供最好的服务。留住客户以后,微信的其他部分(附近、圈子以及其他)就开始上来做生意。
这有点像杭州旅游的模式。杭州对西湖免费,所有的游客都可以徜徉在西湖的风景里,天天参观也不会有人来收西湖游览费。和其他景区相比,这似乎吃了大亏。但由于杭州城与西湖一色的从容景致,人们往往愿意在杭州多逗留时日,最终给杭州贡献了更多的旅游收入。
虽然其商业化尚未取得成效,但其核心的移动IM却在疯狂的攻城掠地。微信的壮大可以预见,而微信的商业化成功也只是时间问题。
微信终于弄懂了
微信理论上什么都能做,但又老虎吃天无从下口。对于每个创业者而言都是这样,由于自己构想很大,而自己很小,如何建立正确的多米诺骨牌然后推倒它,成为核心问题。
微信也不例外。虽然它超级强大,但也需要想明白正确的建立多米诺骨牌的顺序,而且要确保能够顺利推倒。在此之前,微信做过很多小心翼翼的尝试。表情也好,游戏也罢,O2O也好会员卡也罢,最终,盐科技投稿人认为,他们发现了自己的痛点&&移动支付。如果没有支付,收集的信息就没有什么实质的用处,如果人们还要用支付宝,那么自己的存在就是为他人作嫁衣裳。
微信具体怎么想的,我们无从得知。但盐科技投稿人认为,弄懂这一点至关重要。接下来就是如何让别人用上支付。我倾向于认为,很早以前微信就明白这一点,但如何让用户使用支付,在没有其他更强的推动力以前,用户为什么要使用支付?这一回微信终于找到两个解决方案,而且这两个解决方案相当漂亮!
微信通过两个强关联的应用,促使这一方案完成:
一是嘀嘀打车,每次省10块钱;出租车司机每次多赚10块(大体上)。据我对出租车的了解,师傅们非常欢迎。而且这个让用户都安装支付的应用,还帮助微信巩固了线下市场,一箭双雕;
二是刚刚上线的微信理财通,借助全民理财是成熟度,此举不仅抢夺了金融市场份额(从此小玩家将渐次离场),而且培育了微信支付,后者才关乎微信的盈利棋局。再次一箭双雕。
一旦每个人都捆绑了银行卡可以便利支付,O2O的优势才能更好发挥。到这个时候,微信公号对于微信已经是鸡肋。微信下一步必然是O2O,这时服务于周边的日用品商店应该可以关门了,无店铺周边快递零售,将会是一个很好的生意。
而游戏收入,表情收入更是轻而易举。举个例子:如果为了买个应用还要登陆一次支付宝,这就不划算了。但如果手指一点就能完成,这就不叫事儿了。如果6块钱就能送朋友一个应用,似乎更是皆大欢喜。
盐科技撰稿人认为,解决了支付,就解决了O2O,也解决了微信商业化的核心问题。随之而来的,是微信新的机会。再举个例子:微信公号可以卖钱了,存入6块钱,每篇文章5分钱,看一半觉得好看,点击看完,5分钱。不好看,不付钱。至于开发个微信游戏,开个无店铺的日用账号什么的,更是轻而易举。想创业的朋友们,不妨关注一下这个机会。
多元化:复制QQ模式,但比QQ更强大
越来越多的人通过微信的商业化来判断其成败,这大错特错。
决定微信成功的原因只有一个:它是短信和语音的最佳替代品。作为移动时代的IM,微信可以通过wifi和移动网络,更好、更快而且便捷的与亲朋好友联络,这是微信得以存活、和口口相传的基础。
因此,微信的收入或许取决于移动支付或者O2O,但微信的壮大与之完全无关。只要微信相对于短信、彩信、语音通话(尤其是长途语音通话)仍具有优势,这款完全免费的应用就会随着智能手机和3G网络的发展自然生长。
QQ的成功可以解释为:QQ本身并不赚钱,但依靠强大的用户黏性,腾讯不断的拓展QQ的外延,并通过外延衍生品赚取收入。
微信的思路显然也如此:继续强化微信的核心竞争力&&移动IM,使之成为用户的首要选择,从而确保每个用户都能从中获利,而保持使用状态。
考虑到单纯的移动IM(或者说语音IM)缺少盈利空间,腾讯开始为微信增加&衍生品&。
首先它引入了LBS,查找附近的人;然后是漂流瓶、摇一摇等陌生人交友功能,以此来增加用户在微信的活跃度(陌生人交流更倾向于打发时间的IM,而熟人之间使用偏短信类);随后增加圈子等SNS应用增加用户的停留时间,丰富微信的内容;再后来它在附近引入商家,在圈子引入公共账户&&
通过巩固核心的&移动IM&应用,和围绕核心的外围拓展,微信构建了属于自己的移动生态系统,这个系统目前仅仅依靠&移动IM&支撑,但由于其核心具有足够强大的黏性,足以支撑微信在其余各个领域进行试错。
即便微信强制化的增加了很多商业化内容,如果在移动IM上没有更强劲的对手,用户也一样会变骂边使用&&就像QQ一样&&除非运营商壮士断臂,放弃短信/彩信的收入,将微信釜底抽薪,但面对几百亿元的市场,运营商不会主动放弃。
&&因此,微信也就会继续野蛮生长。
当&微信=支付&后,加上它的本地化、社交化属性,微信将比QQ强大很多很多倍。嘀嘀打车和微信理财通一出,阿里巴巴应该一声冷汗。毕竟快的打车也不错,但和支付宝、新浪微博还是无法捆绑,也无法融为一体。
从微信后期的走势来看,微信的发展方向就是复制QQ的成功,但微信将会比QQ更为成功。盐科技撰稿人认为,如果不去微信创业,就买腾讯股票吧。
CBN记者黄晓常解释微信的成功时说,腾讯是一个很懂产品的公司。这使得腾讯模仿的每一款 产品都能够稳定在一个既定的水准上。&如果大家都是模仿者,假如一个大公司在稳定性、微创新和执行力上都做得不差,甚至比初创公司做得更好的时候,初创公司还有什么可抱怨的呢?&
盐科技撰稿人认为,过去腾讯被认为是狗日的腾讯,但微信时代的腾讯,将会越来越平台化。电商、O2O、游戏、表情等将会让微信有更多的机会。微信创业的机会已经确立。
最新图文推荐
最新专栏文章
大家感兴趣的内容
网友热评的文章
seajs.config({
base: "/resource/passapi/scripts/"
seajs.use('seajs/seajs-css');
seajs.use(['artdialog/src/dialog-plus'], function (dialog) {
$('#favorite').on('click', function(){
$.getJSON('/passapi.php?op=userstatus&callback=?', function(data){
if (data.status == 1) {
var _this = $('#favorite').find('span');
$.getJSON('/?app=favorite&controller=favorite&action=add&jsoncallback=?&contentid='+contentid, function(json){
if(json.state){
_this.html('由于公司项目的需要,需要在项目里整合微信支付,公司原有的项目中已有老版本的支付功能,在此不作讨论。我需要作的就是加入新版本的支付功能
让项目里可以支持新老两种版本的功能。在微信官方下载到了新版支付的php版sdk,看到 WxPay.ub.config.php,SDKRuntimeException.php, WxPayPubHelper.php
三个文件。我需要改造的就是WxPayPubHelper.php这个文件,因为这个文件现在是单用户配置的,所以我要让它变成多用户的,在改造的过程中遇到了几点问题,也是大家
可能会经常遇到的,在这分享出来,希望能给他人一些帮助。
q1:redirect_uri 参数错误的问题 !
这个问题出现的比例比较大,在sdk包里有一个demo的文件夹,里面有一个js_api_call.php文件,在他的13行里有如下代码:
//使用jsapi接口
$jsApi = new JsApi_pub();
//=========步骤1:网页授权获取用户openid============
//通过code获得openid
if (!isset($_GET['code']))
//触发微信返回code码
$url = $jsApi-&createOauthUrlForCode(WxPayConf_pub::JS_API_CALL_URL);
Header(&Location: $url&);
//获取code码,以获取openid
$code = $_GET['code'];
$jsApi-&setCode($code);
$openid = $jsApi-&getOpenId();
$url = $jsApi-&createOauthUrlForCode(WxPayConf_pub::JS_API_CALL_URL);这一句就是设置redirect_uri参数的地方,我把它改造成了自己的地址,代码如下:
$url = $jsApi-&createOauthUrlForCode( $site_domain.base64_decode($_GET['uri']));
为什么要用base64编码呢,因为我的url是像这样的 :
index.php?g=Wap&m=Wxpay&a=newpay&token=$1&wecha_id=$2&orderid=$3
这个url又臭又长,而且很多&符,无法识别出哪部分是自己的url了,还有最重要的部分 WxPayHubHelper.php在大概822行的部分,有一个方法叫createOauthUrlForCode($redirectUrl),这个里面的$url这个变量没有进行url编码,请自己加一下,否则你的url里有参数将不能正常被识别,代码很简单:
$url = urlencode($redirectUrl); 这样就行。
进行了以上的设置后如果还出现redirect_uri的错误的话就要考虑你的支付路径权限的问题了,进入微信公众号的后台,请确保你的是服务号,并且已认证,查看方法是页面右上角。在确认了之后& 点左侧菜单的 “开发者中心”,然后如图:
点击修改,填入“授权回调页面域名”,请确保这个域名和你的应用域名一致,这样应该就解决了这个问题。
q2:无法获取prepay_id的问题
首选请确保你 WxPayPubHelper.php这个文件里 UnifiedOrder_pub 这个类的getPrepayId这个方法能正常使用。
此方法代码如下:
* 获取prepay_id
function getPrepayId()
$this-&postXml();
$this-&result = $this-&xmlToArray($this-&response);
$prepay_id = $this-&result[&prepay_id&];
return $prepay_
查看posXml这个方法后发现调用了自己的createXml这个方法
postXml方法如下:
作用:post请求xml
function postXml()
$xml = $this-&createXml();
$this-&response = $this-&postXmlCurl($xml,$this-&url,$this-&curl_timeout);
return $this-&
这时需要确认你的$xml这个变量形式如下:
&xml&&openid&&![CDATA[o-aubjtEkotIj_GNXXXXqV8_XXXXX]]&&/openid&
&body&551389&/body&
&out_trade_no&&![CDATA[wxa86c8ac142174XXX]]&&/out_trade_no&
&total_fee&1&/total_fee&
&notify_url&&![CDATA[/paydemo/demo/notify_url.php]]&&/notify_url&
&trade_type&&![CDATA[JSAPI]]&&/trade_type&
&appid&&![CDATA[wx7143c4axxxxxxxx]]&&/appid&
&mch_id&&/mch_id&
&spbill_create_ip&&![CDATA[192.168.1.110]]&&/spbill_create_ip&
&nonce_str&&![CDATA[imfgrg1g2odbl6mbiacmlkxxxxxxx]]&&/nonce_str&
&sign&&![CDATA[CBE62FD98CB2311XXXXXX]]&&/sign&&/xml&尤其注意 openid的形式一定要类似这样的,全是数字或全是字母的一定是错误
然后postXmlCurl才能正确提交,提交后就能得到正确的prepay_id了
q3:在取到了prepay_id后,在进行付款的时候提示:公众号支付使用了无效的商户号
这个问题大部分是出现在二次签名的时候,由于第二次签名和第一次签名不一致导致的
这时我们需要看WxPayPubHelper.php这个文件里的JsApi_pub这个类,这个类中的getParameters这个方法是进行第二次签名的关键,代码如下:
作用:设置jsapi的参数
public function getParameters()
$jsApiObj[&appId&] = WxPayConf_pub::APPID;
$timeStamp = time();
$jsApiObj[&timeStamp&] = &$timeStamp&;
$jsApiObj[&nonceStr&] = $this-&createNoncestr();
$jsApiObj[&package&] = &prepay_id=$this-&prepay_id&;
$jsApiObj[&signType&] = &MD5&;
$jsApiObj[&paySign&] = $this-&getSign($jsApiObj);
$this-&parameters = json_encode($jsApiObj);
return $this-&
由于我需要根据数据表里的设置来动态的调用key,所以我的这个签名要符合多个商家的,代码改动如下:
作用:设置jsapi的参数
public function getParameters()
$jsApiObj[&appId&] = $this-&config['appid'];
$timeStamp = time();
$jsApiObj[&timeStamp&] = &$timeStamp&;
$jsApiObj[&nonceStr&] = $this-&createNoncestr();
$jsApiObj[&package&] = &prepay_id=$this-&prepay_id&;
$jsApiObj[&signType&] = &MD5&;
$jsApiObj[&paySign&] = $this-&getSign($jsApiObj, $this-&config['key']);
$this-&parameters = json_encode($jsApiObj);
return $this-&
getSign这个方法原型不帖了,改动后如下:
作用:生成签名
public function getSign($Obj, $key ='')
foreach ($Obj as $k =& $v)
$Parameters[$k] = $v;
//签名步骤一:按字典序排序参数
ksort($Parameters);
$String = $this-&formatBizQueryParaMap($Parameters, false);
//echo '【string1】'.$String.'&/br&';
//签名步骤二:在string后加入KEY
if ($key!='') {
$String = $String.&&key=&.$
$String = $String.&&key=&.WxPayConf_pub::KEY;
//echo &【string2】&.$String.&&/br&&;
//签名步骤三:MD5加密
$String = md5($String);
//echo &【string3】 &.$String.&&/br&&;
//签名步骤四:所有字符转为大写
$result_ = strtoupper($String);
//echo &【result】 &.$result_.&&/br&&;
return $result_;
可以看到,我只是多加了一个参数,加了一个判断,因为我不想过多的破坏原来的代码,所以这样加了。
在这样的改造完成后,我遇到的问题都解决了。希望对正在看的你能有所帮助,如果还有问题可以给我留言!微信支付出现的问题总结--不同域名进行授权解决方案
& & 1、如果使用的是微信支付的方式,并且使用的是native的支付方式,那么需要在服务器上生成一张二维码,注意二维码的路径问题:
String imgName = UUID.randomUUID().toString().replace(&-&, &&) +&.png&;
String QRPath = this.getServletContext().getRealPath(&/pay/QRIMG/wx&) + imgN
& & 使用上述的方式可以解决路径问题;在项目中直接引用该文件就可以了
& &2、在多个项目中,由于微信的授权登陆只能配置一个,如下图(不同域名进行授权解决方案):
此时我们想获得到微信授权到不同的域名,此时的方法为:
这里贴出2个主要的授权方法:
解析方法;
package com.huawei.nser.wap.
import java.util.E
import java.util.HashM
import java.util.M
import java.util.UUID;
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import org.apache.struts.action.A
import org.apache.struts.action.ActionF
import org.apache.struts.action.ActionF
import org.apache.struts.action.ActionM
import org.jfree.util.L
import org.slf4j.L
import org.slf4j.LoggerF
import com.huawei.nser.pub.SJBU
import com.huawei.nser.wap.wxtransformation.model.TransfmMessageB
import com.huawei.nser.wap.wxtransformation.service.TransfmMessageS
* @author 获取微信id并跳转
public class WapTransWXAction extends Action{
private Logger log = LoggerFactory.getLogger(WapTransWXAction.class);
private TransfmMessageService transfmMessageS
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
(&@@@@@ WapTransWXAction.execute enter this method&);
transfmMessageService = (TransfmMessageService) SJBUtil.getBean(&transfmMessage&);
//获取信息并保持内容
String id = UUID.randomUUID().toString().replace(&-&, &&);
String field1 = request.getParameter(&field1&);
String field2 = request.getParameter(&field2&);
String field3 = request.getParameter(&field3&);
String call_back_url = request.getParameter(&callBackUrl&);
TransfmMessageBean transfmMessageBean = new TransfmMessageBean();
transfmMessageBean.setId(id);
transfmMessageBean.setField1(field1);
transfmMessageBean.setField2(field2);
transfmMessageBean.setField3(field3);
transfmMessageBean.setCall_back_url(call_back_url);
//step1 保存转换信息
transfmMessageService.saveTransFmMessage(transfmMessageBean);
String authorizeUrl = &https://open./connect/oauth2/authorize?appid=wx4b19bad&redirect_uri=http://babyhhcsy.imwork.net/wapnew/ngwap/weixinopenid.do?id=&+id+&&response_type=code&scope=snsapi_base&state=1#wechat_redirect&;
(&@@@@@ WapTransWXAction.execute get authorizeurl is :{}&,authorizeUrl);
//step 3 调取微信;
response.sendRedirect(authorizeUrl);
public Map request2Map(HttpServletRequest request) {
Map map = new HashMap();
Enumeration names = request.getParameterNames();
while (names.hasMoreElements()) {
String key = names.nextElement();
String value = request.getParameter(key);
if (value == null || value.trim().equals(&&)) {
map.put(key, value);
public String map2String(Map map){
StringBuffer sb = new StringBuffer();
for (Map.Entry entry : map.entrySet()) {
sb.append(entry.getKey()+&=&+entry.getValue()+&;&);
(sb.toString());
return sb.toString();
public TransfmMessageService getTransfmMessageService() {
return transfmMessageS
public void setTransfmMessageService(TransfmMessageService transfmMessageService) {
this.transfmMessageService = transfmMessageS
解析方法:
package com.huawei.nser.wap.
import java.io.IOE
import java.util.E
import java.util.HashM
import java.util.M
import javax.servlet.ServletE
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import net.sf.json.JSONO
import mons.lang.StringU
import org.apache.struts.action.A
import org.apache.struts.action.ActionF
import org.apache.struts.action.ActionF
import org.apache.struts.action.ActionM
import org.slf4j.L
import org.slf4j.LoggerF
import com.huawei.nser.pub.SJBU
import com.huawei.nser.wap.bankPay.util.HttpsRequestU
import com.huawei.nser.wap.wxtransformation.model.TransfmMessageB
import com.huawei.nser.wap.wxtransformation.service.TransfmMessageS
* 微信转换类,获得code内容
* @author thero
public class WXTransAction extends Action {
private Logger log = LoggerFactory.getLogger(WapTransWXAction.class);
private static final String code2openId = &https://api./sns/oauth2/access_token?appid=myappid&secret=mysecret&code=mycode&grant_type=authorization_code&;
private static final long serialVersionUID = 1L;
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
String code = request.getParameter(&code&);
(&AuthorizeUserServlet.doPost get code is :{},get paramter is {}&,code,request.getQueryString());
//step 1 获得id ;
String id = request.getParameter(&id&);
(&@@@@@ get url from wx is :{},and id is&,request.getRequestURL(),id);
//step 2 从查询id并获得url;
TransfmMessageService transfmMessageService = (TransfmMessageService) SJBUtil.getBean(&transfmMessage&);
TransfmMessageBean dbtransfmMessage = transfmMessageService.querytransfmMessage(id);
if(dbtransfmMessage!=null){
String call_back_url = dbtransfmMessage.getCall_back_url();
String openid = this.code2OpenId(request, code, response);
dbtransfmMessage.setOpenid(openid);
transfmMessageService.saveTransFmMessage2(dbtransfmMessage);
StringBuffer sb = new StringBuffer();
sb.append(call_back_url);
sb.append(&?openid=&+openid);
if(null!=dbtransfmMessage.getField1()&& !&&.equals(dbtransfmMessage.getField1())){
sb.append(&&fields1=&+dbtransfmMessage.getField1());
if(null!=dbtransfmMessage.getField2()&& !&&.equals(dbtransfmMessage.getField2())){
sb.append(&&fields2=&+dbtransfmMessage.getField2());
if(null!=dbtransfmMessage.getField3()&& !&&.equals(dbtransfmMessage.getField3())){
sb.append(&&fields3=&+dbtransfmMessage.getField3());
response.sendRedirect(sb.toString());
public String code2OpenId(HttpServletRequest request,String code, HttpServletResponse response) throws ServletException, IOException{
String openId =
String tempUrl = code2openId.replace(&myappid&, &wxXXXXX8&).replace(&mysecret&, &13XXXXXXc66&).replace(&mycode&,code);
//String tempUrl = code2openId.replace(&myappid&, &wXXXXXf&).replace(&mysecret&, &7aXXXXXc28&).replace(&mycode&,code);
(&AuthorizeUserServlet.code2OpenId get tempUrl is :{}&,tempUrl);
JSONObject result = HttpsRequestUtil.httpsRequest(tempUrl, HttpsRequestUtil.POST,&&);
(&AuthorizeUserServlet.code2OpenId get openid is :{}&,result.toString());
if(!(null!=result && result.get(&openid&)!=null)){
return result.get(&openid&).toString();
public Map request2Map(HttpServletRequest request) {
Map map = new HashMap();
Enumeration names = request.getParameterNames();
while (names.hasMoreElements()) {
String key = names.nextElement();
String value = request.getParameter(key);
if (value == null || value.trim().equals(&&)) {
map.put(key, value);
public String map2String(Map map) {
StringBuffer sb = new StringBuffer();
for (Map.Entry entry : map.entrySet()) {
sb.append(entry.getKey() + &=& + entry.getValue() + &;&);
(sb.toString());
return sb.toString();
数据库脚本:
prompt PL/SQL Developer import file
prompt Created on 日 星期五 by wangjirong
set feedback off
set define off
prompt Creating EC_GET_OPEN_ID...
create table EC_GET_OPEN_ID
id VARCHAR2(32) not null,
call_back_url VARCHAR2(300),
openid VARCHAR2(28),
session_id VARCHAR2(24),
field1 VARCHAR2(30),
field2 VARCHAR2(30),
field3 VARCHAR2(30)
tablespace ECARE
pctfree 10
initrans 20
maxtrans 255
initial 1M
minextents 1
maxextents unlimited
comment on table EC_GET_OPEN_ID
is '微信统一获得openid数据库';
comment on column EC_GET_OPEN_ID.id
is 'id主键';
comment on column EC_GET_OPEN_ID.call_back_url
is '回调url地址';
comment on column EC_GET_OPEN_ID.openid
is 'openid微信';
comment on column EC_GET_OPEN_ID.session_id
is '请求session位置';
comment on column EC_GET_OPEN_ID.field1
is '备用字段1';
comment on column EC_GET_OPEN_ID.field2
is '备用字段2';
comment on column EC_GET_OPEN_ID.field3
is '备用字段3';
alter table EC_GET_OPEN_ID
add constraint PK primary key (ID)
using index
tablespace ECARE
pctfree 10
initrans 2
maxtrans 255
initial 64K
minextents 1
maxextents unlimited
prompt Disabling triggers for EC_GET_OPEN_ID...
alter table EC_GET_OPEN_ID
prompt Loading EC_GET_OPEN_ID...
insert into EC_GET_OPEN_ID (id, call_back_url, openid, session_id, field1, field2, field3)
values ('121', 'http://192.168.88.210:8071/weixin/pay/pay.', 'oznhbuPT3DkbBHmZCWbU4Gr4cbjw', null, '123', '321', null);
insert into EC_GET_OPEN_ID (id, call_back_url, openid, session_id, field1, field2, field3)
values ('feb0aaed1cda4c868b569bb2c;, 'http://192.168.88.210:8071/weixin/pay/pay.jsp', null, null, '123', '321', null);
insert into EC_GET_OPEN_ID (id, call_back_url, openid, session_id, field1, field2, field3)
values ('078ed17fb5f1abef;, 'http://192.168.88.210:8071/weixin/pay/pay.jsp', null, null, '123', '321', null);
insert into EC_GET_OPEN_ID (id, call_back_url, openid, session_id, field1, field2, field3)
values ('020eea88b9a8e79e;, 'http://192.168.88.210:8071/weixin/pay/pay.jsp', null, null, '123', '321', null);
insert into EC_GET_OPEN_ID (id, call_back_url, openid, session_id, field1, field2, field3)
values ('65a063d899e', 'http://192.168.88.210:8071/weixin/pay/pay.jsp', null, null, '123', '321', null);
insert into EC_GET_OPEN_ID (id, call_back_url, openid, session_id, field1, field2, field3)
values ('cb9e9af8ef70fff208af', 'http://192.168.88.210:8071/weixin/pay/pay.jsp', null, null, '123', '321', null);
insert into EC_GET_OPEN_ID (id, call_back_url, openid, session_id, field1, field2, field3)
values ('a789ee91f5d749a89a20fe102f93dddb', 'http://192.168.88.210:8071/weixin/pay/pay.jsp', null, null, '123', '321', null);
prompt 7 records loaded
prompt Enabling triggers for EC_GET_OPEN_ID...
alter table EC_GET_OPEN_ID
set feedback on
set define on
prompt Done.
3、openid的区别:
& & 在开发微信的时候,如果你使用了测试账户,测试账户值得是:在公众平台设置的测试账号;测试你用过授权得到的openid,和实际使用的openid是不一致的!,需要特别的注意,在正式上线的时候,需要使用真实的openid;
& & 使用测试账号的openid和测试的首选域,是可以完成支付测试的,需要注意:只
公众平台设置了测试授权目录才能进行相应的支付测试,负责,不能完成支付;

我要回帖

更多关于 支付宝转账凭证 的文章

 

随机推荐