Thursday, October 21, 2010

Use Naked Domain in Google App Engine with nginx

As we may know that Google announced App Engine will no longer support naked domains.

However, there are many people still trying to bind naked domain to the website. So am I. I migrated my website to App Engine from dedicated server a few months ago. But I really do not like the form of sub domain: www.billychow.me/

Since of that, I was seeking for the solution for several days. Finally, I found another way to achieve this feature by Reverse Proxy. So I want to share this with anyone else who has not known yet.

OK, Let’s go.

First, you need install nginx and do the following configuration:

server {
  server_name example.com;

  location / {
    proxy_pass http://yourappid.appspot.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

Then, change the DNS A record of your naked domain to point your proxy server and wait for its effects.

Finally, open your web browser and navigate to your domain to test.

note: You can use any other web server software which support reverse proxy as proxy server if you want. The only difference is the formation of configuration file.

Thursday, September 23, 2010

支付宝接口实现参考

支付请求
参数 必填 说明
_input_charset N GBK 字符集编码
service Y trade_create_by_buyer
create_digital_goods_trade_p
create_partner_trade_by_buyer
create_direct_pay_by_user
partner Y 商户ID
security_code Y 安全码
notify_url Y 通知URL
return_url N 返回URL
subject Y 商品名称
body N 商品描述
out_trade_no Y 订单号(商户)
price Y 商品单价
total_fee Y 交易金额
show_url N 商品展示 URL
quantity Y 购买数量
payment_type Y 1 支付类型
logistics_type Y POST 物流类型
POST: 平邮
EMS: EMS
EXPRESS: 其它快递
EMS
EXPRESS
logistics_fee Y 物流费用
logistics_payment Y SELLER_PAY 物流支付类型
SELLER_PAY: 由卖家支付物流费用(费用不用计算到总价内)
BUYER_PAY: 买家支付物流费用(费用需要计算到总价内)
BUYER_PAY
receive_name N 收货人姓名
receive_address N 收货人地址
receive_zip N 收货人邮编
receive_phone N 收货人电话
receive_mobile N 收货人邮编
seller_email Y 卖家帐号
seller_id 卖家 ID
buyer_email N 买家帐号
buyer_id  
t_b_pay N 买家逾期不付款,自动关闭交易的期限
t_s_send_1 N 卖家逾期不发货,建议买家退款的期限
t_s_send_2 N 买家逾期不确认收货,自动完成交易(平邮)的期限
sign Y 签名
sign_type Y 签名类型
支付网关返回参数
参数 说明
notify_type   通知类型
notify_id   通知编码
notify_time   通知时间
sign   签名
sign_type   签名类型
trade_no   订单号(支付宝)
out_trade_no   订单号(商户)
subject   商品名称
body   商品描述
price   商品单价
discount   折扣
quantity   购买数量
total_fee   交易金额
payment_type 1 支付类型
use_coupon   是否使用红包
coupon_discount   红包折扣
is_total_fee_adjust   金额是否修改过
trade_status WAIT_BUYER_PAY 等待买家付款
WAIT_SELLER_SEND_GOODS 付款成功,等待卖家发货
WAIT_BUYER_CONFIRM_GOODS 卖家已发货,等待买家收货
TRADE_FINISHED 交易完成
TRADE_CLOSED 交易关闭
modify.tradeBase.totalFee 修改交易价格
refund_status WAIT_SELLER_AGREE 买家申请退款
REFUND_SUCCESS 退款成功
REFUND_CLOSED 退款关闭
logistics_status INITIAL_STATUS 初始状态
WAIT_LOGISTICS_FETCH_GOODS 等待物流取货
WAIT_LOGISTICS_SEND_GOODS 等待物流发货
LOGISTICS_SENDING 物流发货中
WAIT_RECEIVER_CONFIRM_GOODS 等待收货人确认收货
GOODS_RECEIVED 货物收到了
LOGISTICS_FAILURE 物流失败
logistics_type POST 物流类型
EMS
EXPRESS
logistics_fee   物流费用
logistics_payment SELLER_PAY 物流支付类型
BUYER_PAY
receive_name   收货人姓名
receive_address   收货人地址
receive_zip   收货人邮编
receive_phone   收货人电话
receive_mobile   收货人邮编
seller_email   卖家帐号
seller_id   卖家 ID
buyer_id   买家 ID
buyer_email   买家帐号
gmt_create   交易创建时间
gmt_payment   买家付款时间
gmt_send_goods   卖家发货时间
gmt_refund   退款时间
gmt_close   交易结束时间
gmt_logistics_modify   物流状态更新时间
通知查询请求
参数 说明
_input_charset   编码
service    
partner    
notify_id    
输出内容 说明
invalid 传入的参数无效
true 验证通过
false 验证失败
错误代表列表
错误代码(error_code) 说明
ILLEGAL_SIGN 签名验证出错
ILLEGAL_ARGUMENT 参数不正确
HASH_NO_PRIVILEGE 没有权限访问该服务
ILLEGAL_SERVICE Service 参数不正确
ILLEGAL_PARTNER 商户 ID 不正确
HAS_NO_PUBLICKEY 没有上传公钥
USER_NOT_EXIST 会员不存在
OUT_TRADE_NO_EXIST 外部交易号已经存在
TRADE_NOT_EXIST 交易不存在
ILLEGAL_PAYMENT_TYPE 无效支付类型
BUYER_NOT_EXIST 买家不存在
SELLER_NOT_EXIST 卖家不存在
BUYER_SELLER_EQUAL 买家、卖家是同一账户
ILLEGAL_SIGN_TYPE 签名类型不正确
COMMISION_ID_NOT_EXISTS 佣金收取帐户不存在
COMMISION_SELLER_DUPLICATE 收取佣金帐户和卖家是同一帐户
COMMISION_FEE_OUT_OF_RANGE 佣金金额超出范围
ILLEGAL_LOGISTICS_FORMAT 无效物流格式
TOTAL_FEE_LESSEQUAL_ZERO 交易总金额小于等于0
TOTAL_FEE_OUT_OF_RANGE 交易总金额超出范围
ILLEGAL_FEE_PARAM 非法交易金额格式
DONATE_GREATER_THAN_MAX 小额捐赠总金额超出最大值限制
DIRECT_PAY_AMOUNT_OUT_OF_RANGE 快速付款交易总金额超出最大值限制
DIGITAL_FEE_GREATHER_THAN_MAX 虚拟物品交易总金额超出最大值限制
SELF_TIMEOUT_NOT_SUPPORT 不支持自定义超时
COMMISION_NOT_SUPPORT 不支持佣金
VIRTUAL_NOT_SUPPORT 不支持虚拟发货方式
ILLEGAL_CHARSET 字符集不合法
  • 没有值的参数无需传递,也无需包含到签名数据中。
  • 签名时将字符转化成字节流时指定的字符集与 _input_charset 保持一致。
  • 如果传递了 _input_charset 参数,这个参数也应该包含在待签名数据中。
  • 传递参数的值中如果存在特殊字符(如:&、@ 等),那么该值需要做 URL Encoding
未完待续...

Saturday, May 22, 2010

Money

Money is like gasoline during a road trip. You don’t want to run out of gas on your trip, but you’re not doing a tour of gas stations. You have to pay attention to money, but it shouldn’t be about the money. – Tim O’Reilly

Sunday, May 16, 2010

Dropbox was blocked in China

Ah…yes…

Finally, it had happened before a few days ago. As you know, every popular services will be blocked in this country. Though I knew that it’s only the problem of time. Therefore, I don’t want to talk anything about this country. It’s not that i don’t want to, but i can’t.

Fortunately, I’ve just bought a foreign VPS. So, I have set a proxy such as VPN up for myself. I don’t care anymore about if the site was blocked. It saved a lot of time for me.

I’m feeling so good!

Wednesday, May 12, 2010

A sleepless night

Over and over again, I have just got up several times but still cannot fall asleep…

What happened to me? Maybe I need to do some work until I can’t do anything exhaustedly?!

Time passed so fast!!!

Friday, March 26, 2010

35 Useful Applications of Android for Chinese Geeks

HTC G1 作为我的第一款智能手机,已经使用了半年了,在这半年的时间,Android 突飞猛进,从 Hero, Droid, N1 到 HTC G4, 从 Android 1.6 到 2.1,使我对 Android 平台有了更多的期待,我坚信 Android 超过 iPhone 只是时间上的问题,在我看来,这就如同开放与封闭之间的斗争一样,最后占有优势的必然是开放的一方。

以下软件是我经过多款同类软件的使用后,根据个人偏好所精选的一批软件,希望能与更多的朋友进行分享,如果你有更好的建议及意见,欢迎回复,或给我邮件。

  1. Aldiko
    一款不错的阅读软件,有大量免费的电子书可直接下载,用户体验不错。
  2. aLogcat
    不需要 DDMS Logcat,在手机上也可直接查看日志信息,软件简洁,但是功能实用,可以根据 Log 级别方便过滤日志信息,随时查看调试日志。
  3. AndChat
    Android 上的 IRC 客户端,放了很久,但没用过。
  4. AndFTP
    FTP 客户端,对中文支持不太好,有时候会乱码。
  5. AnFetion
    中国移动飞信客户端(非官方),功能没有官方全面,但是够用,且支持 WIFI。
  6. aQQ
    目前最好的 Android 平台原生 QQ。(非官方)
  7. Astrid
    GTD 党必备 TODO 软件,支持 RememberTheMilk 双向同步。
  8. ASTRO
    一款强大的文件管理器,还有其它一些功能。
  9. aTrackDog
    为已安装的应用建立追踪数据库,可检查哪些应用已有更新可用。
  10. Autostarts
    系统优化必备软件,可定制开机启动项和基于事件的启动项。
  11. Bluetooth File Transfer
    解决 Android 蓝牙互传文件的问题。
  12. ConnectBot
    非常实用的 SSH 客户端。
  13. Contact2Sim
    可将联系人导入至 SIM 卡。
  14. Discover Pro
    基于 Flex ,开启一个 Web 服务,可以直接通过浏览器访问,访问文件系统,下载/上传等操作。
  15. Documents To Go
    支持 Word, PDF 等格式文件。
  16. EasyMoney
    十分实用,强大的理财软件。可惜有试用期限,需要购买 License。
  17. FlashLight
    非常简单的手电筒软件,拖动即可调整亮度。
  18. fring
    非常强大的一款 VOIP 软件,支持多种协议,MSN,GTalk,Skype 等。
  19. Advanced Task Manager
    非常实用的任务管理器。
  20. HiDict
    一款不错的英/汉翻译软件。
  21. iReader
    目前 Android 平台最好的 CHM 阅读软件。
  22. NewsRob
    可与 Google Reader 同步的 RSS Reader。
  23. Paperdroid
    可与 Read It Later 同步的 RSS Reader。
  24. Remote RDP
    RDP 远程桌面管理客户端,收费软件。
  25. Remote VNC
    VNC 远程桌面管理客户端,收费软件。
  26. RMaps
    除 Google Maps,还支持 Windows Live Map 等其它第三方地图。
  27. Share By QRCode
    生成 QR 识别码
  28. Shazam
    音乐搜寻软件,只需播放一段十秒的音乐,软件就会通过网络查找并给出相关歌曲信息,十分强大。
  29. SIM Checker Lite
    当 SIM 卡被更换,则会通过短信,邮件发送警告,利用 GPS 或网络定位告知所在地,防盗必备。
  30. Simple Last.fm Scrobbler
    last.fm scrobbler 客户端,支持系统内置的音乐播放器。
  31. SwiFTP
    FTP 服务端,使你的手机成为一台 FTP 服务器。
  32. Toggle Screen Timeout
    关闭屏幕延迟快捷开关。
  33. Transdroid
    免费,开源,更新快,P2P 爱好者必备软件,支持 BitTorrent 6+, Deluge 1.2+, DLink Router BT, Ktorrent, rTorrent, Torrentflux-b4rt, Transmission, uTorrent, Vuze 等多种 BT 客户端的远程管理。
  34. Twidroid / Twigee
    目前最受欢迎的 Twitter 客户端,有免费和付费版。
  35. Wake On Lan
    如果你的主板支持 WOL,那么便可以通过手机远程打开计算机。

以上软件(除部分收费软件),均可直接在市场中找到。

欢迎分享,转载,请注明出处,本文章可能会随时修改并标注最新发布日期。

Friday, February 12, 2010

“用得少”不代表“没有用”

  • cite 包含引用信息或者对其他来源的参考说明。
  • dfn 表示所包含的是术语的定义。
  • code 指明一段计算机程序代码。
  • samp 指明一段程序或脚本等的输出。
  • kdb 表示由用户输入的文本。
  • var 表示一个变量或者程序参数的实例。
  • abbr 表示一种简写形式(例如 WWW、HTTP、URI、Mass 等)。
  • acronym 表示只取首字母的缩写形式(例如 WAC、radar 等)。
  • address 表示地址信息
  • big 在一段文本中表示字号更大。
  • small 在一段文本中表示字号更小。
  • blockquote 表示引用一段文本,块级元素
  • hr 分隔符,块级元素
  • label 表单字段标签
  • sub 下标
  • sup 上标
  • ins 定义被插入的文本(默认不显示)
  • del 定义被删除的文本(文本带有删除线)

现在有了这么多的标签,你的 div 和 span 又减少了多少呢?

Recommended Redmine’s Plugins