确定要传递给支付宝的参数

1、这些参数怎么来的?

每个接口对应一个接口技术文档,文档中提到的请求参数,就是可以选择要传递的参数。

2、怎么确定这些参数?

1)基本参数

     partner、_input_charset、sign、sign_type、service这些属于基本参数,是必须要传递的参数。

2)业务参数

    ①在接口技术文档的请求参数列表中,不可空的参数是必须要传递的参数。

        如:即时到账中total_fee、subject、out_trade_no等

    ②根据商户自身的业务需求或根据支付宝接口对应的特殊业务规则,有些参数也是需要传递过来的

        如:即时到账中如果开通了防钓鱼策略,那么anti_phishing_key、exter_invoke_ip必须传递。

3、怎么集合这些参数?

拿即时到账接口举例说明,如果确定了要传递参数是partner、_input_charset、sign、sign_type、service、notify_url、return_url、total_fee、subject、out_trade_no、payment_type、seller_email。

那么还需要获得这些参数对应的值,把参数及其对应的值集合到数组或集合中。

开发语言java为例:

Map<String, String> sParaTemp = new HashMap<String, String>();
sParaTemp.put("service", "create_direct_pay_by_user");
sParaTemp.put("partner", "2088501624560335");
sParaTemp.put("_input_charset", "utf-8");
sParaTemp.put("payment_type", "1");
sParaTemp.put("notify_url", "http://商户网关地址/alipay/notify_url.jsp");
sParaTemp.put("return_url", "http://商户网关地址/alipay/return_url.jsp");
sParaTemp.put("seller_email", "alipayrisk10@alipay.com");
sParaTemp.put("out_trade_no", "2012113000001");
sParaTemp.put("subject", "测试订单");
sParaTemp.put("total_fee", "0.01");
sParaTemp.put("sign", "此时是不知道的");
sParaTemp.put("sign_type", "MD5");

注意:
①参数对应的这些值一般都是通过商户端的订单系统、支付宝配置信息中动态获得。
②这些参数没有被编码过,是原始数据。
③这些参数的值,不能存在影响接口逻辑的特殊字符,例如:&、/、^、%、@、=、+等。

onlineServer