WooCommerce Authorize.net CIM Gateway可以让WooCommerce支持信用卡付款,服务提供方是authorize.net。最近安装了这个插件,需要区分用户的国籍,让不同国家的用户要付款到不同的authorize.net账户,用sandbox测试多个账户时,遇到一些问题,特此记录。

注册Authorize.net Sandbox 账户

注册过程比较简单,到https://developer.authorize.net/sandbox/按照提示注册一个账户即可,注册的邮箱将用来接收账单。

注册完成后,页面会直接显示测试所需要的API Login IDAPI Transaction Key,把这两个填到后台的Test Mode API Login ID和Test Mode API Transaction Key选项中,并勾选Enable Test Mode,就可以打开sandbox模式,如果想查看具体的报错信息,Debug Mode一项选择Show on Checkout Page。

authorize-settings

注意:API Login ID和API Transaction Key大概需要15分钟才能生效,最好等一段时间再测试,免得浪费感情。

如何测试API LoginID和Transaction Key是否生效

用下面这个链接来测试

https://test.authorize.net/gateway/transact.dll?xhttp://www.solagirl.net/wp-admin/post-new.php_version=3.1&x_type=AUTH_ONLY&x_amount=1.99&x_card_num=4111111111111111&x_exp_date=0615&x_delim_data=TRUE&x_relay_response=FALSE&x_login=YourLoginID2&x_tran_key=YourTransactionKey

把YourLoginID和YourTransactionKey替换成你的信息,如果测试没问题,会返回类似下面的结果

1,1,1,This transaction has been approved.,44T3RS,Y,2202999995,,,1.29,CC,auth_only,,,,,,,,,,,,,,,,,,,,,,,,,,36911DEB95158332EC06F4B618EDD7AB,,2,,,,,,,,,,,XXXX1111,Visa,,,,,,,,,,,,,,,,

确认信息生效后,即可进行付款测试了。

重新生成Transaction Key

登陆sandbox,到settings » Security Settings » API Login ID and Transaction Key中重新生成。需要提供Secret Question,通常是Simon。

transaction-key

测试过程中遇到的问题

Duplicate customer ID

这个问题的意思是,customer ID已经存在了。每个用户付款成功后,都会生成一个customer ID,这个ID同时记录在WordPress数据库和Authorize.net的数据库中。

如果,因为某种原因,WordPress数据库里的customer ID丢失了(比如编辑user profile时直接给删了),结账时却使用相同信息,就会产生重复ID的问题。

这时你可以到sandbox的Customer Information Manager中Profile ID一栏,看一下是否有这个customer ID,如果有的话,点击它,进入详细信息中删掉即可。

profile-id

大多数问题都是Login ID未生效profile ID已存在导致的,先把这两个问题排除。如果还有错误,可以打开日志,看看错误代码是什么。

Authorize.net错误代码及说明

 

6条留言

  1. authorize.net 这个应该不支持中国商户注册收款吧,需要美国公司和美国银行的吧。楼主可否看看DHpay? 他们不需要开户费也是像authorize.net按比例收费,但是遗憾没有做woocommerce插件。

    1. DHpay没听说过,我不是搞外贸的。看了下集成文档,如果有提供沙箱的话应该不是太复杂。我个人感觉这个支付方式好像不如支付宝paypal流行,找人开发吧。

  2. sola 你接单吗?修改 WordPress 和开发插件这些。

  3. 我希望Sola能搞个QQ群,目前关注并使用woocommerce的人不少了,但缺乏交流,而你的网站其实帮助了很多人。

    1. 问题是我很少上qq,一个月都不到一个小时的样子。

评论功能已关闭